具有条件if和null的Jquery表单验证

时间:2014-01-30 10:33:05

标签: jquery forms validation null conditional

我正在努力让某些条件形式验证工作,但我正在努力解决它。

以下是方案:我有一个可选的文本字段(#hb),可以留空并且表单提交但如果它不是空白则必须在表单提交之前输入日期字段(#hdate)

我已经尝试了各种各样,但我尝试的最后一个是(value !=''),我认为如果#hb为空,我认为可以解决这个问题。

任何人都有任何指示让我继续?

谢谢大家!

JQuery代码

var bla = $('#hb').val();
var blaa = $('#hdate').val();

if (bla != '' && blaa == '') {
      $('#EC9').show();
      $('#Edialog').dialog('open');
      return false;
   } 

编辑:这是我的全部功能

<script>
function validateForm() {
   var e = $('#Consultant');
   var x = e.val();
   var w = $('#out');
   var q = w.val();
   var r = $('#inpt');
   var t = r.val();
   var y = $('#Speciality');
   var u = y.val();


   var asa = $('#nahf').is(':checked');
   var asb = $('#ohf').is(':checked');
   var asc = $('#aelc').is(':checked'); 
   var asd = $('#aat').is(':checked');  
   var ase = $('#aqdp').is(':checked');

   var ped = $('#Pace').val();


    var bla = $('#hb').val();
    var blaa = $('#hdate').val();
    var blb = $('#pl').val();
    var blbb = $('#pdate').val();
    var blc = $('#inr').val();
    var blcc = $('#idate').val();
    var bld = $('#bilirubin').val();
    var bldd = $('#bdate').val();
    var ble = $('#crp').val();
    var blee = $('#cdate').val();



   if (x == null || x == "") {
      $('#EC1').show();
      $('#Edialog').dialog('open');
      return false;
   }

      if (q == null || q == "") {
      $('#EC2').show();
      $('#Edialog').dialog('open');
      return false;
   }

    if (t == null || t == "") {
      $('#EC3').show();
      $('#Edialog').dialog('open');
      return false;
   }

   if (u == null || u == "") {
      $('#EC4').show();
      $('#Edialog').dialog('open');
      return false;
   }

   if (asa == "0" & asb == "0" & asc == "0" & asd == "0" & ase == "0") {
      $('#EC5').show();
      $('#Edialog').dialog('open');
      return false;
   }

   if (ped == null || ped == "") {
      $('#EC8').show();
      $('#Edialog').dialog('open');
      return false;
   }

    if($(bla).val() != '' && $(blaa).val() == '') {
    $('#EC9').show();
    $('#Edialog').dialog('open');
    return false;
 } 

   if (blb != '' && blbb == '') {
      $('#EC9').show();
      $('#Edialog').dialog('open');
      return false;
   }

   if (blc != '' && blcc == '') {
      $('#EC9').show();
      $('#Edialog').dialog('open');
      return false;
   }

   if (bld != '' && bldd == '') {
      $('#EC9').show();
      $('#Edialog').dialog('open');
      return false;
   }

   if (ble != '' && blee == '') {
      $('#EC9').show();
      $('#Edialog').dialog('open');
      return false;
   }

}
</script>

1 个答案:

答案 0 :(得分:0)

/ **在前端代码 / / 例如onclick属性必须使用return关键字然后才停止回发** /

<button type="button" id="btnSubmit" onclick="return validateForm()">Submit</button>

/ ** Jquery Code ** /

function validateForm(){
    var isSubmit = true;
    if($("#hb").val().length != 0){
        if($("#hdate").val().length != 0){
            if(validateDateFormat($("#hdate").val())){
                   isSubmit=true;
            }
        }
        else
          {isSubmit=false;}
    }
    else
    { isSubmit=true; }
    return isSubmit;
}

function validateDateFormat(dateValue){
    var bool = false;
    var myDate = new Date();
    var bits = dateValue.split('/');
    myDate.setFullYear(bits[2], bits[1] - 1, bits[0]);
    if (myDate != "Invalid Date") {
        bool = true;
    }
    return bool;
}

/ **日期格式应为dd / mm / yyyy格式。如果您想要任何其他格式,请更改分割功能并重新排序setFullYear函数** /