1

動的に作成されたフォーム要素を持つフォームがあります。

各要素の値を取得し、ajax リクエストを送信して、データが正常であることを確認する必要があります (簡単な部分です)。各要素の値を簡単に取得できますが、問題はラジオ ボタンにあります。例えば:

<input type = 'radio' class = 'form_element' value = '1'>
<input type = 'radio' class = 'form_element' value = '1'>
<input type = 'radio' class = 'form_element' value = '1'>

私が何かをするなら...

$('.form_element').each(function(){
     alert($(this).val());
});

チェックされているかどうかに関係なく、すべてのラジオ ボタンの値が出力されます。

チェックされたものの値のみを返す必要があります。

では、jquery から入力要素の型を返す方法はありますか?

4

5 に答える 5

1

これはあなたが望むことをします。ループ内では、不要なjQueryボクシングが残りました。ラジオ、チェックボックス、テキスト、テキストエリア、select-oneを処理します。select-multiple、file、...を考慮していません。

$('.form_element').each(function() {
  switch(this.type) {
    case 'radio':
    case 'checkbox': if (this.checked) alert(this.value); break;
    case 'text':
    case 'textarea':
    case 'select-one': alert(this.value); break;
    default: alert("unhandled type: "+this.type);
  }
});
于 2009-11-30T08:37:50.377 に答える
1

$('.form_element:checked')チェックされたラジオ ボタンの値のみを取得するために使用します。

于 2009-11-30T07:53:03.293 に答える
1

salgiza が言及した以外に、属性フィルターを使用して、要件を含むより一般的なフィルター処理を実行することもできます。

次のように: $('.form_element[checked=true]').each(function(){ alert($(this).val()); });

于 2009-11-30T07:59:23.093 に答える
0

この例はおそらく改善される可能性がありますが、うまくいくはずです。

$('.form_element').each(function(){
    if ($(this).attr("type") == "radio") {
        if ($(this).attr("checked") == true) {
            alert($(this).val());
        }
    } else {
        alert($(this).val());
    }
});

動作しているかどうかを確認するために、次の HTML を使用してテストしました (この例では、各ラジオ オプションで同じ値が使用されていました)。

<input type='radio' name="a" class="form_element" value="1">
<input type='radio' name="a" class="form_element" value="2">
<input type='radio' name="a" class="form_element" value="3">
于 2009-11-30T08:19:48.463 に答える
0

試す:

$('.form_element:checked').each(function(){
     alert($(this).val());
});
于 2009-11-30T07:54:08.110 に答える