Error “Uncaught TypeError: Cannot read property ‘value’ of null”

publicado por: Anonymous

Estoy realizando mi primer formulario de registro en ASP.NET y utilizando tambien algo de Javascript estoy presentando el siguiente error al momento de registrar

Uncaught TypeError: Cannot read property ‘value’ of null

El siguiente es el código de mi javascript:

function f_submitForm() {
    $("#submit").css("display", "none");
    $("#load").css("display", "block");


    const auxPriorityInput = document.getElementById("ticketPriorityInput");
    const auxticketService = document.getElementById("ticketServiceInput");
    const auxticketSubService = document.getElementById("ticketSubServiceInput");
    const auxCategoryInput = document.getElementById("ticketCategoryInput");
    const auxticketOrigin = document.getElementById("ticketOriginInput");

    const form = new FormData();

    const ins = document.getElementById("file").files.length;
    for (let x = 0; x < ins; x++) {
        form.append("files[]", document.getElementById("file").files[x]);
    }

    form.append("ticketIdAppliInput", document.getElementById("ticketIdAppliInput").value);
    form.append("ticketNameAppliInput", document.getElementById("ticketNameAppliInput").value);
    form.append("ticketEmailAppliInput", document.getElementById("ticketEmailAppliInput").value);    
    form.append("ticketExtAppliInput", document.getElementById("ticketExtAppliInput").value);
    form.append("ticketPhoneAppliInput", document.getElementById("ticketPhoneAppliInput").value);
    form.append("ticketAreaAppliInput", document.getElementById("ticketAreaAppliInput").value);
    form.append("ticketLocationAppliInput", document.getElementById("ticketLocationAppliInput").value);
    form.append("ticketSubjectInput", document.getElementById("ticketSubjectInput").value);
    form.append("ticketDescrInput", document.getElementById("ticketDescrInput").value);
    form.append("ticketPriorityInput", auxPriorityInput.options[auxPriorityInput.selectedIndex].value);
    form.append("ticketServiceInput", auxticketService.options[auxticketService.selectedIndex].value);
    form.append("ticketSubServiceInput", auxticketSubService.options[auxticketSubService.selectedIndex].value);
    form.append("ticketCategoryInput", auxCategoryInput.options[auxCategoryInput.selectedIndex].value);
    form.append("ticketOriginInput", auxticketOrigin.options[auxticketOrigin.selectedIndex].value);

Mirando en la consola de mi navegador me encuentro con el error

introducir la descripción de la imagen aquí

Exactamente en la propiedad de ticketExtAppliInput posiblemente el error se deba a que requiero hacer una validación con este campo cuando este vació se envié a guardar a el valor 0 por defecto, pero no estoy seguro de como hacerla, si esa puede ser la solución pueden indicarme como arreglarlo si no cual seria la solución correcta

UPDATE:

Tengo dos formularios, pero dependiendo de las variables de sesión, se cargan ciertos campos, ticketExtAppliInput tiene que ir tanto en uno como en otro, la diferencia es que en lo que necesito también va ticketExtAppliInput pero no se ingresa, necesito que se almacene por defecto. Valor “0”

_x000D_

_x000D_

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>_x000D_
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">_x000D_
_x000D_
<div class="card-body">_x000D_
                        <div class="mb-4">_x000D_
                                <div class="form-group">_x000D_
                                    <label for="ticketExtAppliInput">Extensión:</label>_x000D_
                                    <input step="1" id="ticketExtAppliInput" type="number" maxlength="6" oninput="if (this.value.length > this.maxLength) this.value = this.value.slice(0, this.maxLength);" name="extension" class="form-control form-control-user">_x000D_
                                </div>_x000D_
                        </div>_x000D_
                </div>

_x000D_

_x000D_

_x000D_

solución

Puedes probar a hacer una validación en caso de que este vació asignarle el valor 0

function f_submitForm() {
$("#submit").css("display", "none");
$("#load").css("display", "block");

const auxPriorityInput = document.getElementById("ticketPriorityInput");
const auxticketService = document.getElementById("ticketServiceInput");
const auxticketSubService = document.getElementById("ticketSubServiceInput");
const auxCategoryInput = document.getElementById("ticketCategoryInput");
const auxticketOrigin = document.getElementById("ticketOriginInput");


const form = new FormData();

const ins = document.getElementById("file").files.length;
for (let x = 0; x < ins; x++) {
    form.append("files[]", document.getElementById("file").files[x]);
}

form.append("ticketIdAppliInput", document.getElementById("ticketIdAppliInput").value);
form.append("ticketNameAppliInput", document.getElementById("ticketNameAppliInput").value);
form.append("ticketEmailAppliInput", document.getElementById("ticketEmailAppliInput").value);    
if ($('ticketExtAppliInput').val() == "") {

    //le damos el valor de cero al no tener ningun valor
    document.getElementById("ticketExtAppliInput").value = "0";
} 
form.append("ticketPhoneAppliInput", document.getElementById("ticketPhoneAppliInput").value);
form.append("ticketAreaAppliInput", document.getElementById("ticketAreaAppliInput").value);
form.append("ticketLocationAppliInput", document.getElementById("ticketLocationAppliInput").value);
form.append("ticketSubjectInput", document.getElementById("ticketSubjectInput").value);
form.append("ticketDescrInput", document.getElementById("ticketDescrInput").value);
form.append("ticketPriorityInput", auxPriorityInput.options[auxPriorityInput.selectedIndex].value);
form.append("ticketServiceInput", auxticketService.options[auxticketService.selectedIndex].value);
form.append("ticketSubServiceInput", auxticketSubService.options[auxticketSubService.selectedIndex].value);
form.append("ticketCategoryInput", auxCategoryInput.options[auxCategoryInput.selectedIndex].value);
form.append("ticketOriginInput", auxticketOrigin.options[auxticketOrigin.selectedIndex].value);
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *