0

検索フィルター システムに一連のブートストラップ ラジオ ボタンがあります。すべてが関連する一連の onchange および onclick イベントを使用して検索を行っています。

私が抱えている問題は、検索を実行してすべてのラジオ フィルターを再設定するときです。ブートストラップ ラジオ ボタンは同じ法線で出力checked="checked"され、選択したラジオに追加されます。次に、関連するラベルをアクティブに設定し、CLICK トリガー イベントをシミュレートします。これにより、インターフェイスにとって重要な一連のイベントが実行されます。

$('input[type="radio"]:checked').parent('label').addClass('active');
//simulate click
$('input[type="radio"]:checked').parent('label').click( );
$('input[type="radio"]:checked').click( );

*注: クリック トリガーのさまざまな組み合わせを試しました。

コードを確認すると、正しい出力です。checked="checked"はラジオにあり、ボタン/ラベルはアクティブです。

ただし、ラジオをクリックせずにフォームを再送信すると、これらのラジオボタンの値が投稿されません。彼らはただ消えます。これは、クリック ティガーを実行したときにのみ発生します。選択されていないラジオボタンをクリックすると、値が投稿されます。既にアクティブなラベル (既に選択されている) ラジオをクリックすると、値が投稿されません。jqueryクリックトリガーを実行した後に新しい値をクリックした場合のみ。

クリックトリガーを省略した場合、ラジオボタンの値は期待どおりに正常に投稿されます。

クリックトリガーを使用すると、クリックトリガーに関連付けられたすべての添付イベントが正常に実行されます。ただし、クリックトリガーを使用して値を変更しないと、ラジオはリターン $_POST から消えます。

どうしてこれなの?私は何か間違ったことをしていますか?開発のこの時点で、クリック トリガーが正しく機能する必要があります。

4

1 に答える 1

0

私はこの問題を次のように解決しました:

//to check radio on click
$('label.btn.btn-primary').click(function () {
    $(this).children('input').attr("checked", "checked");
});
//to check radio on load
$('label.btn.btn-primary.active').children('input').attr("checked", "checked");
于 2013-12-13T11:29:50.240 に答える