1

私は3つのフィールドを持っています:

<input type="datetime" name="input-data" id="datetime-start">
<input type="datetime" name="input-data" id="datetime-end">
<input type="text" name="input-data" id="text-basic">

そして、何かが入力されているかどうかを確認する必要があるので、私は最初にそれを好きjQuery.each('[name="input-data"]', function()にしてループで使用thisしましたが、いくつかのエラーが発生します。小さなデバッグの後、のような方法を見つけましたjQuery.each(jQuery('[name="input-data"]'), function(key, value)が、実行しようとするとconsole.log(value.val());エラーが発生します。だから私は何が入っているのかを見てvalue驚いた-文字列だけがあった<input type="datetime" name="input-data" id="datetime-start">。では、どのようにしてすべての入力値をループすることができますか?

4

5 に答える 5

2

eachjQueryインスタンスで使用します。例:

jQuery('[name="input-data"]').each(function() {
    // Here, `this` is the DOM element. If you want to use jQuery methods,
    // wrap the element in a jQuery instance:
    var input = jQuery(this);

    // Now, input.val() will give you the value
});

jQueryのAPIは時々少し混乱します。これはその時の1つです。jQueryには、類似しているが異なる2つの関数がありeachます。jQueryインスタンス(上記を参照)を呼び出す場合とjQuery.each、配列、オブジェクト、および配列のようなオブジェクトをループするために使用できる、です。

jQuery.each(jQuery('[name="input-data"]', function...jQueryインスタンスは配列に似ているため、を使用したコードは機能しますが、関数内でDOM要素をラップしていなかったため、機能val()しませんでした。ただし、上記は、一致した要素のセットをループする通常の方法です。

于 2013-03-15T08:10:49.480 に答える
0

試す

$('input[name="input-data"]').each(function(el){
    console.log($(this).val());
})

デモ:フィドル

于 2013-03-15T08:11:01.863 に答える
0
$(document).ready(function(){
   $('input').each(function(){
     console.log($(this).val());
    });
    }
});
于 2013-03-15T08:11:41.087 に答える
0

.each()間違って使用しています。これを試して:

jQuery('[name="input-data"]').each(function() {
    // Use $(this) to access current object
});
于 2013-03-15T08:12:33.430 に答える
-1

あなたはHTML5に取り組んでいますね?与えられたhtml5の検証を使用してみませんか?属性「required='true'」を設定するだけで完了です;-)

jquerymobileでこれを行う良い方法もあります。私がそれを正しく覚えているなら、あなたはクラス'required'を必要な入力属性に設定する必要があります。参考のために:

http://www.raymondcamden.com/index.cfm/2012/7/30/Example-of-form-validation-in-a-jQuery-Mobile-Application

于 2013-03-15T08:13:07.557 に答える