jQuery检查空字段不';不要检查所有字段
例如,我使用下面的脚本检查空字段:jQuery检查空字段不';不要检查所有字段,jquery,field,Jquery,Field,例如,我使用下面的脚本检查空字段: $('a.submit').click(function() { if ($('.LoginData').val() == "") { $('input:text[value=""]').attr('style', 'border-color:#FF0000;'); } else { $(this).parents('form').submit(); } }); 所有输入元素都有LoginData类,因此我使用jQuery类选择器来选择包含该
$('a.submit').click(function() {
if ($('.LoginData').val() == "") {
$('input:text[value=""]').attr('style', 'border-color:#FF0000;');
} else {
$(this).parents('form').submit();
}
});
所有输入元素都有LoginData类,因此我使用jQuery类选择器来选择包含该类的所有元素。但是,当if条件发现一个字段不是空的时候,它就停在那里
我认为这是if语句的正常行为,有没有其他替代方法
谢谢。“.val()”只有一个返回值——它只能给您一个元素的值;该元素将是$()集合中的第一个元素
$('a.submit').click(function()
{
var ok = true;
$('.LoginData').each(function()
{
if($(this).val() == "")
{
$(this).attr('style', 'border-color:#FF0000;');
ok = false;
}
}
if (ok)
{
$(this).parents('form').submit();
}
});
您的代码当前只查看第一个元素。您需要与支票一起使用,以确保支票按计划进行 此外,如果字段不为空,处于当前状态的循环将立即提交表单
val()
只返回第一个匹配元素的值,因此不能用它来验证表单是否已填写
您需要使用jQuery.each()
方法对“.loginda”项进行迭代
一个好的解决方案是使用
each
方法,将一个类附加到空元素上(类似于validate empty
)。这可用于将样式附加到元素,以向用户显示所需的样式(就像上面所做的,但使用已定义的类)。然后,您可以检查表单,例如$(“#我的表单.验证为空”).size()==0
,以查看在提交之前是否存在错误。您需要使用我注意到这在Chrome中不起作用(它总是提交表单),因此您需要添加:
event.preventDefault();
像这样:
$('a.submit').click(function()
{
event.preventDefault();
var ok = true;
$('.LoginData').each(function()
{
if($(this).val() == "")
{
$(this).attr('style', 'border-color:#FF0000;');
ok = false;
}
}
if (ok)
{
$(this).parents('form').submit();
}
});
为什么要使用
。单击()
开始?如果您想使用jQuery提交表单,我建议您使用.submit()
(有关.submit()
的更多信息,请阅读jQuery文档)。正如其他用户所说,您可以使用.each()
函数迭代所有输入字段。我会这样做:
$("#form").submit(function(event){
$(".classForAllInput").each(function(index) {
if ($(this).val() == 0) {
$("#error").css({"display": "inline"}).text("Some of the fields are empty");
event.preventDefault();
}
});
});
jQuery函数
.each()
将迭代所有输入字段,如果其中任何一个字段为空,则将显示错误消息(前提是您有一个显示错误ID的区域) 这里是另一种方法。此外,该表单不会在chrome上提交,因此在没有立即使用prevent.default的情况下,它不会按照别人的描述进行操作
<script type="text/javascript">
$('#ctl00_PlaceHolderMain_changeRequestbtnSave').click(function (e) {
var valid = true;
//check all inputs within a parent div)
$('.requiredfield input').each(function () {
//check if values is null
if ($(this).val() == "") {
$(this).addClass('requiredflag');
valid = false;
}
})
if(!valid) {
e.preventDefault();
}
});
</script>
$(“#ctl00_占位符main_changeRequestbtnSave”)。单击(函数(e){
var valid=true;
//检查父div中的所有输入)
$('.requiredfield输入')。每个(函数(){
//检查值是否为空
if($(this).val()==“”){
$(this.addClass('requiredflag');
有效=错误;
}
})
如果(!有效){
e、 预防默认值();
}
});
请记住,如果您没有使用document.ready,则这需要放在html的最底部
我的风格如下:
<style>
.requiredflag {
border: 1px solid red;
}
.requiredfield:after {
content: "*";
font-weight: bold;
color: red;
}
</style>
.requiredflag{
边框:1px纯红;
}
.requiredfield:之后{
内容:“*”;
字体大小:粗体;
颜色:红色;
}
我不是专家,但我认为您忘记了在函数调用(在第一行)中包含“事件”处理程序,如:$('a.submit')。单击(函数(事件)