简单"选择" javascript中的验证无效

时间:2014-03-28 06:56:40

标签: javascript html validation

我坚持使用javascript进行简单的“选择”验证。

问题是:验证“选择”时,验证错误

后,它不会向用户显示选择选项

“选择不会让用户在验证显示后选择选项”

HTML:

<div class="form-group">    

<label for="exampleInputArea">Area</label>
    <select style="color:#000 !important" class="form-control" id="exampleInputArea" placeholder="Select Month" name="exampleInputArea">
        <option value="" >--Select Area--</option>
        <option value="Area1">Area1</option>
        <option value="Area2">Area2</option>
        <option value="Area3">Area3</option>

    </select>
    <div style="color:red;" id="areaerror"></div>
</div>

<div class="form-group last">
    <button class="btn btn-lg btn-red mailbtn">Submit</button>
</div>

JS:

$('.mailbtn').live('click',function(){

area = $('#exampleInputArea').val();

if(area.lenght==0 || area=='')
        {
            $('#exampleInputArea').html('')
            $('#areaerror').text('Area is Required');
            return false;
        } else { 
            $('#areaerror').text('');
            return true;
        }

$.ajax({
        type: "POST",
        async : false,
        url: "mail.php",
        data: {area:area}
        })
        .done(function( msg ) {
        $('.mail_middle').html('');
        $('.mail_middle').html('We will call you to confirm your delivery address.<br/>Thank you.');
        return false;
        });
});

这是我的js小提琴链接: FIDDLE

请帮我解决问题,因为这会浪费我的时间......

3 个答案:

答案 0 :(得分:2)

将您的代码更改为低于1 FIDDLE

if (area.length == 0 || area == '') {
    $('#exampleInputArea').val('')
    $('#areaerror').text('Area is Required');
    return false;
} else {
    $('#areaerror').text('');
}

您的错误

  1. length而不是lenght
  2. 如果错误选择val('')而不是html(''),则会val('')选择您的值为空白,这是您的默认值,html('')它将替换html (即option)你的选择为空白。
  3. 成功后不要返回,因为你必须执行ajax功能,return true它将返回你的函数而不执行你的ajax功能。

答案 1 :(得分:1)

您的代码有一些错误:

$('.mailbtn').on('click',function(){    
    var area = $('#exampleInputArea').val();
    console.log(area);
    if(area.length==0 || area=='')
            {
                $('#areaerror').text('Area is Required');
                return false;
            } else { 
                $('#areaerror').text('');
                return true;
            }

所以最好使用我的代码,这里是更新的小提琴:

<强> http://jsfiddle.net/aelor/7zPgf/3/

这将仅在选择任何区域时发送ajax,否则它将仅显示验证消息

答案 2 :(得分:0)

试试这个 [http://jsfiddle.net/7zPgf/1/] [1] 活不是很好的方法。 试试吧。

 [1]: http://jsfiddle.net/7zPgf/1/