我被javascript简单的"select"验证卡住了。
问题是:当验证"select"时,在验证错误后不向用户显示选择选项
"select不允许用户在验证显示后选择选项"
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
if (area.length == 0 || area == '') {
$('#exampleInputArea').val('')
$('#areaerror').text('Area is Required');
return false;
} else {
$('#areaerror').text('');
}
错误
- 是
length
而不是lenght
- 错误选择
val('')
而不是html('')
,通过val('')
它将选择您的值为空白,这是您的默认值,通过html('')
它将取代html
(即option
)的选择空白。 - 在成功时不要返回它,因为你必须执行ajax功能,通过
return true
它将返回你的函数不执行ajax功能。
你的代码有一些错误:
$('.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,否则它将简单地显示验证消息
试试这个 [http://jsfiddle.net/7zPgf/1/] [1] 现场直播不是一个好办法。试穿。
[1]: http://jsfiddle.net/7zPgf/1/