Проверка для текстового поля - PullRequest
0 голосов
/ 09 января 2012

У меня есть форма с текстовой областью с именем 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>

Ответы [ 3 ]

1 голос
/ 09 января 2012

попробуй document.forms[0].title.selectedIndex

0 голосов
/ 09 января 2012

Обычно достаточно проверить, является ли длина значения текстовой области или ввода.

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/

0 голосов
/ 09 января 2012

Используйте document.form.name.value.length вместо.

...