在下面的函数中,它会通过if和else,为什么会这样?
function test(){
$(".notEmpty").each(function() {
if($(this).val() === ""){
alert("Empty Fields!!");
return;
}
else{
AddRow_OnButtonClick('tblMedicationDetail',6);
}
});
}
是否有关于jquery的if和else声明我不知道?
AddRow_OnButtonClick是一个添加6个文本框的新行的函数,我附加了一个className'notEmpty',如果任何文本框为空,则不应调用函数AddRow_OnButtonClick并弹出警报。
我不知道我做错了什么。
由于
答案 0 :(得分:3)
return
语句仅从提供给.each
的函数返回。我怀疑你遇到的问题是你想从test()
返回。实际上,从内部函数返回后,您仍然会将内部函数应用于其余元素。
如果我是对的,并且您希望完全脱离.each()
,请改为return false
(see jQuery docs)。
答案 1 :(得分:1)
结合现有的两个答案让我相信这会有效:
var emptyFields = false;
function test(){
emptyFields = false;
$(".notEmpty").each(function() {
if($.trim($(this).val()) == "") {
emptyFields = true;
return false; // break out of the each-loop
}
});
if (emptyFields) {
alert("Empty Fields!!");
} else {
AddRow_OnButtonClick("tblMedicationDetail",6);
}
}
基本思路是您需要使用.each
调用来确定某个字段是否为空。在此之后,您可以使用if else
声明来处理信息。
答案 2 :(得分:0)
我已经构建了代码以使其更具可读性,但我不确定为什么 if 和 else 都被调用:< / p>
function test(){
$(".notEmpty").each(function() {
if($(this).val() === ""){
alert("Empty Fields!!");
return;
} else {
AddRow_OnButtonClick("tblMedicationDetail",6);
}
});
}
答案 3 :(得分:0)
if($(this).val() == ""){
2等于不是3的标志 - 那可能是你的问题......?