14

ラジオボタンに基づくjQueryボタンセットを使用して、Webサイトでエディター機能を構築しています。アイテムをエディターにロードするとき、選択したラジオ ボタンを設定する必要があります。もちろん、ユーザーはオプションを変更でき、データベースに保存されます。アイテムが閉じたら、ボタンセットをデフォルトにリセットしたいと思います。

問題は、ボタンセットを設定すると、最初に各項目を選択したときに機能し、その後故障して一緒に機能しなくなることです。

問題のデモ: http://jsfiddle.net/kallsbo/vSmjb/

HTML:

<div id="dumpSec">
    <input type="radio" name="security" id="r_public" value="public" class="rSec">
    <label for="r_public"><i class="icon-globe"></i> Public</label>
    <input type="radio" name="security" id="r_private" value="private" class="rSec">
    <label for="r_private"><i class="icon-lock"></i> Private</label>
    <input type="radio" name="security" id="r_link" value="link" class="rSec">
    <label for="r_link"><i class="icon-link"></i> Anyone with the link</label>
</div>
<div>
    If you use the buttons below you can programmatically select each of the radios in the buttonset once before it all breaks down...
</div>
<div>
     <button id="nbr1">Select Private</button><br/>
     <button id="nbr2">Select Link</button><br/>
     <button id="nbr3">Select Public</button><br/>
</div>

JavaScript:

// Basic function
$("#dumpSec").buttonset();
$("#r_public").attr("checked", true);
$("#dumpSec").buttonset('refresh');

// Put in functions on the demo buttons
$( "#nbr1" )
  .button()
  .click(function( event ) {
    $("#r_private").attr("checked", true);
    $("#dumpSec").buttonset('refresh');
  });

$( "#nbr2" )
  .button()
  .click(function( event ) {
    $("#r_link").attr("checked", true);
    $("#dumpSec").buttonset('refresh');
  });

$( "#nbr3" )
  .button()
  .click(function( event ) {
    $("#r_public").attr("checked", true);
    $("#dumpSec").buttonset('refresh');
  });

各ラジオボタンのラベルのクリック機能をトリガーしようとするなど、多くのことを試しましたが、機能するものが見つかりません。どんな入力でも大歓迎です!

4

2 に答える 2

29

チェック済みステータスを設定するには、 .attr ()の代わりに.prop( )を使用する必要があります

$("#r_link").prop("checked", true);

デモ:フィドル

読む:属性とプロパティ

于 2013-09-23T08:32:17.043 に答える
4

http://jsfiddle.net/vSmjb/2/

click()あなたはそれを機能させるためにトリガーすることができます

  $("#r_private").click()
于 2013-09-23T08:51:58.500 に答える