IF声明无法正常工作

时间:2011-09-27 17:11:36

标签: javascript

我有这些控件:

    chck1_amt through chck5_amt (1 though 5 check Amounts)

    And chckX is from chcknum1 through chcknum5 (1 through 5 check numbers

我们要做的是,如果checkX_​​amt框没有空白或者其值不是0并且检查编号框(chcknumX)为空,则通知用户检查编号框必须包含支票编号。在用户输入支票数据之前,请专注于该框。

这个出现一直工作到今天,当它一直询问支票编号是否在checkamount框中有值时。

以下是代码:

if ((document.getElementById('chck1_amt').value != "" || document.getElementById('chck1_amt').value != "0") && (document.getElementById('fvEmp_chcknum1').value == "")) {
    alert("Please enter check # to continue");
    document.getElementById('chcknum1').focus();
    return false;
}
if (((document.getElementById('chck2_amt').value != "") || (document.getElementById('chck2_amt').value != "0")) && (document.getElementById('fvEmp_chcknum2').value == "")) {
    alert("Please enter check # to continue");
    document.getElementById('chcknum2').focus();
    return false;
}
if ((document.getElementById('chck3_amt').value != "0") && (document.getElementById('chcknum3').value == "")) {
    alert("Please enter check # to continue");
    document.getElementById('chcknum3').focus();
    return false;
}
if ((document.getElementById('chck4_amt').value != "0") && (document.getElementById('chcknum4').value == "")) {
    alert("Please enter check # to continue");
    document.getElementById('chcknum4').focus();
    return false;
}
if ((document.getElementById('chck5_amt').value != "0") && (document.getElementById('chcknum5').value == "")) {
    alert("Please enter check # to continue");
    document.getElementById('chcknum5').focus();
    return false;
}
<tr>
    <td><input name="chcknum1" type="text" id="chcknum1" style="width:90px;" /></td><td><input name="chck1_amt" type="text" id="chck1_amt" style="width:90px;" /></td><td>
</tr><tr>
    <td><input name="chcknum2" type="text" id="chcknum2" style="width:90px;" /></td><td><input name="chck2_amt" type="text" id="chck2_amt" style="width:90px;" /></td><td>
</tr><tr>
    <td><input name="chcknum3" type="text" id="chcknum3" style="width:90px;" /></td><td><input name="chck3_amt" type="text" id="chck3_amt" style="width:90px;" /></td><td>
</tr><tr>
    <td><input name="chcknum4" type="text" id="chcknum4" style="width:90px;" /></td><td><input name="chck4_amt" type="text" id="chck4_amt" style="width:90px;" /></td><td>
</tr><tr>
    <td><input name="chcknum5" type="text" id="chcknum5" style="width:90px;" /></td><td><input name="chck5_amt" type="text" id="chck5_amt" style="width:90px;" /></td><td>
</tr>

2 个答案:

答案 0 :(得分:2)

我可能会遗漏某些内容,但看起来您的逻辑是倒退的,因为其他而不是"""0"会提示用户输入支票号码。条件不应该是这样的吗?:

修改

感谢您的评论。我现在明白你的问题。我仍然认为你的逻辑存在问题。如果在值为""0以外的任何值时应提示用户输入,则逻辑应如下所示:

if (document.getElementById('chck5_amt').value.trim() != "0" && document.getElementById('chck5_amt').value.trim() != ""){
    //prompt for check number
}

您可能需要添加一些额外的检查以确保找到输入框:

var input = document.getElementById('chck5_amt');

//uncomment the line below to validate that the input was found
//alert(input);

if (input){
    if (input.value.trim() != "0" && input.value.trim() != ""){
        //prompt for check number
    }
}

答案 1 :(得分:0)

这样的事情:

if (document.getElementById('chck1_amt').value && Number(document.getElementById('chck1_amt').value) && !document.getElementById('chcknum1').value && !Number(document.getElementById('chcknum1').value)) {
  alert('Check 1 has an amount but does not have a valid check number');
  document.getElementById('chcknum1').focus();
  return false;
}