如何在Jquery Javascript中使用嵌套if else

How to use nested if else in Jquery Javascript

本文关键字:嵌套 if else Jquery Javascript      更新时间:2023-09-26

我在这里要做的是有一个表单验证。这里有3个元素,a b c

我需要做的是:

编辑:只是为了纠正我的问题

如果! = 0 | |一个! = " validation_holder = 1;

else,如果var a的值大于0,比较b和c的值,c不大于b

如果没有错误则提交表单。

我正在尝试在嵌套if else中执行此操作。

这是我现在所拥有的。http://jsfiddle.net/jWL9s/2

如有任何帮助,不胜感激。

<form action="" method="post" id="register_form"  name="register_form">
PO<input type="text" id="a" value="0"/><br/>
Remain<input type="text" id="b" value="10"/><br/>
PR<input type="text" id="c" value="5"/><br/>
<span class="alert"></span>
<input name="edt_submit" type="submit" value="Edit">
</form>
jQuery(function($) {
var validation_holder;
$("form#register_form input[name='edt_submit']").click(function() {
var validation_holder = 0;
    var a           = $("form#register_form input[id='a']").val();
    var b           = $("form#register_form input[id='b']").val();
    var c           = $("form#register_form input[id='c']").val();
    if(a != 0 && a != '') {
        $("span.alert").html("You Cannot edit").addClass('validate');
        validation_holder = 1;
    } else {
    if( b > c ) {
        $("span.alert").html("Value is Greater than").addClass('validate');
        validation_holder = 1;
        } else {
        $("span.alert").html("");
        }
    }
    if(validation_holder == 1) { // if have a field is blank, return false
        $("p.validate_msg").slideDown("fast");
        return false;
    }  validation_holder = 0; // else return true
    /* validation End */    
}); // click End 
}); // jQuery End

您是否正在寻找此解决方案(更新后的小提琴)

标记:

<form id="register-form">
    <label for="a">PO</label>
    <input type="text" id="a" value="0"/>
    <label for="b">Remain</label>
    <input type="text" id="b" value="10"/>
    <label for="c">PR</label>
    <input type="text" id="c" value="5"/>
    <p id="message"></p>
    <input type="submit" value="Edit Summary">
</form>
JavaScript:

var validate = function(e) {
  e.stopPropagation();
  e.preventDefault();
  var a = $('#a').val();
  var b = parseInt($('#b').val());
  var c = parseInt($('#c').val());
  var message = $('#message');
  if(a === '' ||  parseInt(a) === 0) {
    message.html('You cannot edit.');
  } else {
    if( c > b ) {
      message.html('Value is Greater.');
    } else {
      message.html('');
      this.submit();
    }
  }
}
$('#register-form').on('submit', validate);

注意abc是字符串,因为表单控件值是字符串。

如果a == 0或a == "验证并显示消息'您不能编辑QTY'

测试看起来很好,因为==将把a的字符串值转换为一个数字,因为另一个值是抽象相等比较算法的数字,所以如果a是零,空字符串或只有空格的字符串,则执行以下语句。

如果a != 0 || a != ",比较c> b validate的值并显示消息' value is Greater than'

这看起来很好,除了你不需要第二个测试,因为它已经被a != 0覆盖了,因为一个空字符串或一个只包含空格的字符串根据上面的算法被转换为0

注意,表单控件必须有一个名称才能成功,一个ID是合适的。

表达式:$("form#register_form input[id='a']").val()可以是$('#a').val()