2017-08-15 27 views
2

早上好,JS類不適用於數據選擇器

我有一些JavaScript檢查輸入是否爲空之前,如果是這樣,取消打印。

我已經將jquery datepicker添加到其中一個字段中作爲類,現在它只應用一個類或另一個類。 (我已經嘗試將日期選擇器作爲ID),但不起作用。

的Javascript:

function checkForm(thisForm) { 
var len = thisForm.elements.length ; 
var cnt = 0 ; 
for (var i=0; i < len; i++) { 
    var elem = thisForm.elements[i] ; 
    if (elem.className == "formFieldRequired") { 
     if ((elem.value == "" || elem.value == -1)) { 
        alert("WARNING:\n You must supply information for the " + elem.name + " field"); 
           elem.focus(); 
           return false; 
        } 
    } 
} 
window.print();return true; 
} 

輸入:

<input name="Effective Date" type="text" style="width:12%;" class="formFieldRequired datepicker" placeholder="DD/MM/YYYY" onkeyup="javascript:return mask(this.value,this,'2,5','/');" maxlength="10"> 

上爲什麼發生這種情況和任何修訂任何想法? - 我可能會錯過一些完全明顯的東西!

+0

'element.className'將是''formFieldRequired datepicker「',而不是''formFieldRequired'''。 –

+0

我改變了你的建議,但是當我打印時沒有輸入任何東西到我的表單中,它會打印並忽略所有其他'formFieldRequired'和'formFieldRequired datepicker'類 – LordTaz

+0

嘗試if(Array.prototype.some.call(thisForm .elements,e => e.className && e.className.match(/ formFieldRequired/i)&&!e.value)){return false; }(這將取代循環)。 –

回答

1
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.js"></script> 
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-datetimepicker/2.5.4/jquery.datetimepicker.js"></script> 

<form id="myform"> 
<input name="Effective Date" type="text" style="width:12%;" class="formFieldRequired datepicker" placeholder="DD/MM/YYYY" onkeyup="javascript:return mask(this.value,this,'2,5','/');" maxlength="10"> 
</form> 

<script> 
    function checkForm(thisForm) { 
     var len = thisForm.elements.length; 
     var cnt = 0 ; 
     for (var i=0; i < len; i++) { 
      var elem = thisForm.elements[i] ; 
      console.log(elem.className) 
      if (elem.className.indexOf("formFieldRequired") != -1) { 
       if ((elem.value == "" || elem.value == -1)) { 
        alert("WARNING:\n You must supply information for the " + elem.name + " field"); 
        elem.focus(); 
        return false; 
       } 
      } 
     } 
     window.print();return true; 
    }   

    checkForm(document.getElementById("myform")); 
</script> 
+0

完美,這將它整理出來。非常感謝! – LordTaz