私はここでかなり厄介な問題を抱えています!
私は<ul>
すべてに入力のグループを持ってい<li>
ます。すべてのリスト要素にラジオボタンがあり、それらをグループ化して、クリックしたときに切り替えられるようにします。
問題は、ラジオが接続されないことです!そのうちの2つをクリックすると、両方がチェックされます。
コードは次のとおりです:http://jsfiddle.net/bakaburg1/Djq5q/1/
注意:これはワードプレスのカスタムフィールドのコードです。
どうもありがとう!
編集1:すべてのリスト要素のフィールドが接続されたままであることが重要です。これにより、PHP側で次のようなデータ構造を取得できます。
array (
0 =>
array (
'answer' => 'answer1',
),
1 =>
array (
'answer' => 'answer2',
),
2 =>
array (
'is_right' => 'on',
'answer' => 'answer3',
),
3 =>
array (
'answer' => 'yiuyiuyiuj',
),
)
EDIT2:当分の間私はいくつかのjQueryで問題にパッチを当てました:
jQuery('.mm_ps_answers input:radio').click(function(){
jQuery(this).parents('ul').find('input:radio').not(this).attr('checked', false)
})
ただし、最も洗練された解決策がわからない場合は、このスニペットにもコメントしてください(回答しないでください)。
EDIT3:フィールドに3つの異なる名前を付け、POSTされたデータを1つの配列にマージして、シリアル化してデータベースに保存することで、問題を解決しました。
<li>
<a class="mm_ps_move button"><img src="http://localhost:8888/minimamedicamenta/wp-content/themes/minima/img/move.png"></a>
<a class="mm_ps_delete_answer button">Delete Answer</a>
<input type="radio" class="mm_ps_is_right" name="mm_ps_answers_is_right[]">
<input type="text" name="mm_ps_answers_input[]" value="">
<input type="hidden" name="mm_ps_answers_impressions[]">
<span class="mm_ps_impressions">impressions: <span>0</span></span>
</li>
ただし、別の問題が発生しました...テキスト入力フィールドのバックエンドにPOSTされたデータは、すべてのフィールドに値があり、空のフィールドもある秩序だった配列ですが、ラジオボタンは1つの値しか送信しないため、わかりません。ウィッチリスト要素のウィッチラジオがチェックされていますが、これについて何か助けはありますか?3つの入力のPOSTのデータは次のとおりです(値はランダムな文字列です)。
[04-Aug-2012 17:18:45] Line (in ):
array (
0 => 'cvxcv',
1 => 'vs',
2 => '',
3 => 's',
)
[04-Aug-2012 17:18:45] Line (in ):
array (
0 => 'on',
)
[04-Aug-2012 17:18:45] Line (in ):
array (
0 => '',
1 => '',
2 => '',
3 => '',
)
EDIT4:リストを変更するすべてのアクション(要素の並べ替え、追加、削除)のラジオボタンに増分数値を割り当てるJavaScriptを使用して問題にパッチを適用しました。あまりきれいではありませんが。