2

これは私のhtmlです(テキストエリアを追加したばかりです):

<form>
<div id="input_wrapper">
    <label for="name">Name:</label>
        <input type="text" name="name" value=""/>
        <label for="phone">Phone:</label>
        <input type="text" name="phone" value=""/>
        <label for="email">Email:</label>
        <input type="text" name="email" value="" />
        <label for="textbox">Comments:</label>
        <textarea name="textbox" rows=3 cols=30 ></textarea>

        <input type="submit" value="" />
    </div>
</form>

これはコードの他の部分です。

 $('form').submit(function (e) {
    var flag = true;
            var inputs = $(this).find('input[type="text"]');

            inputs.each(function(){
                if ($(this).val() === ''){
                    //$(this).addClass('invalid');
                    $(this).prev().addClass('invalid');
                    if ($(this).next().is('span') === false){
                        $(this).after('<span>' + $(this).attr('name') + ' is required</span>');
                    }
                flag = false;
                }else{
                    $(this).removeClass('span');
                    $(this).prev().removeClass('invalid');
                    if ($(this).next().is('span')){
                        $(this).next().remove();
                    }
                }
            });
            if (flag === false) {
            e.preventDefault();
            }
});

テキストエリアをjqueryに含める必要があり、入力と同じように機能する必要があります。

4

3 に答える 3

2

この1行を変更するだけでうまくいくはずです...

var inputs = $(this).find('input[type="text"], textarea');
于 2013-01-29T13:10:59.760 に答える
1

それはあなたが求めているものではないかもしれませんが...検証プラグインはオプションではありませんか?

詳細: http://docs.jquery.com/Plugins/Validation

于 2013-01-29T13:10:23.983 に答える
0

セレクターに追加するだけです。

var inputs = $(this).find('input[type="text"], textarea');

jQuery セレクターでは、コンマを使用して複数の項目をリストできます。これは、複数セレクターと呼ばれます。

指定されたすべてのセレクターの結合結果を選択します。

于 2013-01-29T13:11:08.903 に答える