Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery表单提交不知何故被if语句卡住了_Jquery - Fatal编程技术网

Jquery表单提交不知何故被if语句卡住了

Jquery表单提交不知何故被if语句卡住了,jquery,Jquery,我有一个表单和jquery在提交前验证输入。如果选择brand='auto',则填写所需数据。它不允许我提交表格。我尝试使用firefox,但没有显示任何错误。我认为jquery中的if语句存在一些混乱。如果我选择brand='mobile',则不会发生这种情况。请帮忙 这是你的电话号码 这是我的表格: <form method='post' id='newpostForm' action='action.php'> <div id='error'></div>

我有一个表单和jquery在提交前验证输入。如果选择brand='auto',则填写所需数据。它不允许我提交表格。我尝试使用firefox,但没有显示任何错误。我认为jquery中的if语句存在一些混乱。如果我选择brand='mobile',则不会发生这种情况。请帮忙

这是你的电话号码

这是我的表格:

<form method='post' id='newpostForm' action='action.php'>
<div id='error'></div>
   Title <input type='text' name='title' id='title'>
   <select id="brand" name="brand">
     <option value="">Select brand</option>
     <option value="mobile">Mobile</option>
     <option value="auto">Auto</option>
  </select>
   <div id='morefield' style='display:none'>
  <select class=' morefield' id='registeredyear' name='registeredyear'>
<option value=''>Year</option>
<option value='2015'>2015</option>
<option value='2014'>2014</option>
<option value='2013'>2013</option>
</select>   
<select class=' morefield' id='km' name='km'>
<option value=''>Km</option>
<option value='0 - 4999'>0 - 4999 km</option>
<option value='5000 - 9999'>5000 - 9999 km</option>
<option value='10000 - 14999'>10000 - 14999 km</option>
</select>   
</div>
   <button type="submit" name="ok" id="ok" class="btn btn-warning">OK</button>
<form>
以下是我的jquery代码:

$(document).ready(function(){
$('#title').focus();  
var title = $('#title'); 
var brand = $('#brand');
var error = $('#error');
var registeredyear = $('#registeredyear');
var km = $('#km');
$("#brand").click(function(){
    if (brand.val() == 'auto'){ 
        $("#morefield").css("display","block"); 
    }else{
        $("#morefield").hide();
    }
});
$('#newpostForm').submit(function(e) {
e.preventDefault();
error.html(''); 

    if (title.val() == ''){ 
        title.focus();
        error.html('<span class="errorss"> * Title required</span>');   
    }
    else if (brand.val() == ''){ 
        brand.focus();
        error.html('<span class="errorss"> * Brand required</span>');
    }
    else if (brand.val() == 'auto'){ 
        if(registeredyear.val() == ''){
            registeredyear.focus();
            error.html('<span class="errorss"> * Registered year required</span>');
        }if(km.val()== ''){
            km.focus();
            error.html('<span class="errorss"> * Km travelled required</span>');
        }
    }
    else {
        $('#newpostForm')[0].submit();
    }
});
});

您需要稍微更改您编写的if/else if意大利面代码,以使其正常工作,我建议设置一个标志,以确定是否应发送发件人,如下所示:

$('#newpostForm').submit(function (e) {
    e.preventDefault();
    error.html('');
    var shouldSend = true;
    if (title.val() == '') {
        title.focus();
        error.html('<span class="errorss"> * Title required</span>');
        shouldSend = false;
    } else if (brand.val() == '') {
        brand.focus();
        error.html('<span class="errorss"> * Brand required</span>');
        shouldSend = false;
    } else if (brand.val() == 'auto') {
        if (registeredyear.val() == '') {
            registeredyear.focus();
            error.html('<span class="errorss"> * Registered year required</span>');
            shouldSend = false;
        }
        if (km.val() == '') {
            km.focus();
            error.html('<span class="errorss"> * Km travelled required</span>');
            shouldSend = false;
        }
    }
    if (shouldSend) $('#newpostForm')[0].submit();
});