我坚持使用javascript进行简单的“选择”验证。
问题是:验证“选择”时,验证错误
后,它不会向用户显示选择选项“选择不会让用户在验证显示后选择选项”
<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>
$('.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
请帮我解决问题,因为这会浪费我的时间......
答案 0 :(得分:2)
将您的代码更改为低于1 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
)你的选择为空白。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/