2012-01-09 62 views
0

我有一個名爲name的文本區域的表單,即使所有下拉列表都是導航,我似乎無法驗證此字段,但我嘗試了很多不同的組合,但仍然無法工作,我錯過了什麼嗎?對文本字段的驗證

<script type="text/javascript"> 
function validate_form() { 


    if (document.form.title.selectedIndex == 0) 
    { 
     alert ("Please Select Title."); 
     return false; 
    } 
    if (document.form.time.selectedIndex == 0) 
    { 
     alert ("Please Select Time."); 
     return false; 
    } 
    if (document.form.membership.selectedIndex == 0) 
    { 
     alert ("Please Select Membership."); 
     return false; 
    } 
    if (document.form.name.length < 1) 
    { 
     alert ("Please Enter Name"); 
     return false; 
    } 
} 

</script> 
+0

你有沒有嘗試過的jQuery提供了一個驗證模塊? – 2012-01-09 14:45:31

回答

1

嘗試document.forms[0].title.selectedIndex

+0

優秀的document.forms [0] .title.selectedIndex作品,非常感謝 – 2012-01-09 11:55:17

+0

不要忘記標記爲接受;) – Headshota 2012-01-09 11:56:32

0

使用document.form.name.value.length代替。

+0

請注意,然而,名稱是一個壞ID,因爲它*可能*是一個保留字,不知道。 – 2012-01-09 11:54:19

0

通常情況下,檢查是否是textarea或輸入值的長度。

if(field.value.length) { 

} 

貝婁代碼,也許你需要它。

<form id="myform" method='post' onsubmit="return validate(this)"> 
    <select name="select1"> 
     <option value="">--</option> 
     <option value="val11"> Option </option> 
     <option value="val12"> Option </option> 
    </select> 

    <select name="select2"> 
     <option value="">--</option> 
     <option value="val21"> Option </option> 
     <option value="val22"> Option </option> 
    </select> 
    <select name="select3" > 
     <option value="">--</option> 
     <option value="val31"> Option </option> 
     <option value="val32"> Option </option> 

    </select> 

    <textarea name='description'> </textarea> 
    <input type="submit"/> 

</form> 

和腳本這樣的:

var validate = function(form) { 
    // argument is a form from which function was called 

    // Collect elements to an array which will be validated. 
    var inputs = [].concat.apply(
     [].concat.apply([], form.getElementsByTagName("select")), 
     form.getElementsByTagName("textarea")         
    ); 


    for(var i = 0, l = inputs.length, input; input = inputs[i], i < l; i++) { 

     if(!input.value ) { 
      //In case when some select don't have a value, or empty string is provided  alert(input.name); 
      // Message will be showed 
      alert("Field " + input.name + " cannot be empty!"); 
      return false; // return false, form will not submitted 
     } 
    }; 
    return true; // if all of selects have a properly value; 
}; 

演示上http://jsfiddle.net/4hBuF/