jQuery 选择器 .not() 不工作
jQuery Selector .not() isn't working
我不明白为什么 .not() 选择器不影响验证。这是我的 HTML 表格:
<input name="Title" id="Title" type="text" />
<div id="ErrorTitle" class="hiddenbox"></div>
<input name="Text" id="Text" type="text" />
<div id="ErrorText" class="hiddenbox"></div>
<input name="Price" id="Price" type="text" />
<div id="ErrorPrice" class="hiddenbox"></div>
这是 jquery:
if($('#Title').val() == '')
{
$('#Title').focus();
ErrorBox('Please enter title', 'ErrorTitle'); // Write message in .hiddenbox
$('.hiddenbox').not('#ErrorTitle .hiddenbox').hide();
}
else if($('#Text').val() == '')
{
$('#Text').focus();
ErrorBox('Please enter text', 'ErrorText'); // Write message in .hiddenbox
$('.hiddenbox').not('#ErrorText .hiddenbox').hide();
}
else if($('#Price').val() == '')
{
$('#Price').focus();
ErrorBox('Please enter price', 'ErrorPrice'); // Write message in .hiddenbox
$('.hiddenbox').not('#ErrorPrice .hiddenbox').hide();
}
提交表单时不会显示任何错误消息!
我错了吗?!
我认为你的选择器有误:
$(".validate").on('click', valid);
function valid() {
if($('#Title').val() == '')
{
$('#Title').focus();
$("#ErrorTitle.hiddenbox").text("errortitle"); // Write message in .hiddenbox
$("#ErrorTitle.hiddenbox").show();
$('.hiddenbox').not('#ErrorTitle.hiddenbox').hide();
}
else if($('#Text').val() == '')
{
$('#Text').focus();
$("#ErrorText.hiddenbox").text("errortext"); // Write message in .hiddenbox
$("#ErrorText.hiddenbox").show();
$('.hiddenbox').not('#ErrorText.hiddenbox').hide();
}
else if($('#Price').val() == '')
{
$('#Price').focus();
$("#ErrorPrice.hiddenbox").text("errorprice"); // Write message in .hiddenbox
$("#ErrorPrice.hiddenbox").show();
$('.hiddenbox').not('#ErrorPrice.hiddenbox').hide();
}
}
应该可以解决问题。
这是fiddle:http://jsfiddle.net/BenoitNgo/hm128k63/
我不明白为什么 .not() 选择器不影响验证。这是我的 HTML 表格:
<input name="Title" id="Title" type="text" />
<div id="ErrorTitle" class="hiddenbox"></div>
<input name="Text" id="Text" type="text" />
<div id="ErrorText" class="hiddenbox"></div>
<input name="Price" id="Price" type="text" />
<div id="ErrorPrice" class="hiddenbox"></div>
这是 jquery:
if($('#Title').val() == '')
{
$('#Title').focus();
ErrorBox('Please enter title', 'ErrorTitle'); // Write message in .hiddenbox
$('.hiddenbox').not('#ErrorTitle .hiddenbox').hide();
}
else if($('#Text').val() == '')
{
$('#Text').focus();
ErrorBox('Please enter text', 'ErrorText'); // Write message in .hiddenbox
$('.hiddenbox').not('#ErrorText .hiddenbox').hide();
}
else if($('#Price').val() == '')
{
$('#Price').focus();
ErrorBox('Please enter price', 'ErrorPrice'); // Write message in .hiddenbox
$('.hiddenbox').not('#ErrorPrice .hiddenbox').hide();
}
提交表单时不会显示任何错误消息! 我错了吗?!
我认为你的选择器有误:
$(".validate").on('click', valid);
function valid() {
if($('#Title').val() == '')
{
$('#Title').focus();
$("#ErrorTitle.hiddenbox").text("errortitle"); // Write message in .hiddenbox
$("#ErrorTitle.hiddenbox").show();
$('.hiddenbox').not('#ErrorTitle.hiddenbox').hide();
}
else if($('#Text').val() == '')
{
$('#Text').focus();
$("#ErrorText.hiddenbox").text("errortext"); // Write message in .hiddenbox
$("#ErrorText.hiddenbox").show();
$('.hiddenbox').not('#ErrorText.hiddenbox').hide();
}
else if($('#Price').val() == '')
{
$('#Price').focus();
$("#ErrorPrice.hiddenbox").text("errorprice"); // Write message in .hiddenbox
$("#ErrorPrice.hiddenbox").show();
$('.hiddenbox').not('#ErrorPrice.hiddenbox').hide();
}
}
应该可以解决问题。 这是fiddle:http://jsfiddle.net/BenoitNgo/hm128k63/