2009-09-30 78 views

回答

1

這應做到:

document.getElementById('myForm').onsubmit = function() { 
    var elems = document.getElementsByClassName('req'); 
    for(var i = 0; i < elems.length; i++) { 
     if(elems[i].value.length == 0) { 
      return false; 
     } 
    } 
} 

這將附加功能,以您的表單提交事件。如果其中任何元素爲空,該函數將立即返回false,從而阻止提交表單。

如果你不想被計空格只值填充,你可以用這個代替,如果條件在上面做:

if(elems[i].value.replace(/^\s+|\s+$/g,"").length == 0) { 
    ... 
+0

如果任何隱藏的或其他非必需的輸入有一個空值,這將失敗。 – 2009-09-30 16:18:02

+1

@mikesamuel - 我看不出如何。投票是否真的有必要? – karim79 2009-09-30 16:25:41

+0

我同意,karim,這應該是因爲你只有'req'字段,對吧? – Zlatko 2012-01-13 12:25:49

0

添加一個「的onsubmit」事件處理表單會讓你在需要時採取行動。

<form onsubmit="checkMyForm(this)"> 
    ... 
    </form> 

然後,你可以定義一個處理程序

<script> 
    function checkMyForm(myForm) { 
    for (var i = 0; i < myForm.elements.length; ++i) { 
     var input = myForm.elements[i]; 
     if (/\breq\b/.test(input.className) && !input.value) { 
     // Has an empty required input 
     alert('Please enter all required inputs'); 
     input.focus(); 
     return false; // abort form submission 
     } 
    } 
    } 
    </script> 
+0

onsubmit =「checkMyForm(this)」= intrusive javascript = yuck。 – karim79 2009-09-30 16:28:02

+0

看起來不錯,但我不明白,如果(/ \ breq \ b/.test(... line,你能告訴我發生了什麼? – BigOmega 2009-09-30 17:51:58