0
<input type="radio" id="incomplete" name="app_status" value="incomplete">Incomplete Application<br>
<input type="radio" id="complete" name="app_status" value="complete">Complete Application<br><br>
<div id="app_box">      
   <input type="checkbox" name="application_complete"  value="checked" />Checbox policy

<br><br>
</div>

ユーザーが不完全なラジオボックスをクリックするとアラートが表示されるように、ラジオボックスを実装しようとしています。

ユーザーが完全なラジオ ボックスをクリックすると、「application_complete」ボックスが表示され、それ以外の場合は非表示になります。

これが私のjquery関数で実装しようとしているものです。おそらく私の概念は少し間違っていると思います:

<script type="text/javascript">
$(function(){
    $("#app_box").hide("fast");
    if($("#complete").is(':checked')){
        $("#app_box").show("fast");
    }
    elseif($("#incomplete").is(':checked')){
        alert("Application will be incomplete");
        $("#app_box").hide("fast");
    }
});
</script>

みんなありがとう.. JREAM によって提案されたコードを少し変更する必要があります。application_complete ボックスをオンにしてから、incomplete ラジオ ボックスをクリックした場合、application_complete ボックスをもう一度オフにすることはできますか?

どうでも。私はそれを考え出した。

$('input[name=application_complete]').attr('checked',false);
4

5 に答える 5

2

2 つの問題があります。

1: イベント ハンドラーがないため、ページが読み込まれたときにのみフォームがチェックされます (最初は何も選択されていません)。

2: 「elseif」を実行しましたが、JS ではその 2 つの単語を使用したため、JavaScript が壊れてしまいました。「else if」を実行してください。解決策は次のとおりです。

<script type="text/javascript">
$(function(){
    $("#app_box").hide();

    $('input[name=app_status]').change(function() {
      var value = $(this).val();
      if (value == 'incomplete') {
        alert('error msg');
      } else if (value =='complete') {
        $('#app_box').show();
    }
});

});
</script>
于 2012-03-06T23:01:49.050 に答える
2

change()イベントをチェックしてチェックボックスの値を比較することでそれを行うことができます:

$(function(){
  $("#app_box").hide("fast");
  $('[name="app_status"]').change(function(){
    if (this.value == 'complete') {
      alert('complete');
    } else {
      alert('incomplete');
    }
  });
});​

デモ用にここでフィドルを作成しました。

于 2012-03-06T23:02:31.280 に答える
2

無線でクリック イベントを処理する必要があります。

$(function(){
     var $app_box = $("#app_box").hide("fast");

     $(':radio[name="app_status"]').click(function() {
        if (this.value === "complete")
            $app_box.show("fast");
        else if (this.value === "incomplete") {
            alert("Application will be incomplete");
            $app_box.hide("fast");
        }
     });
});
于 2012-03-06T23:02:39.870 に答える
0

そのためには、jQuery UI、特にモーダルボックスを使用する方がおそらく良いでしょう:http: //jqueryui.com/demos/dialog/#modal-message

于 2012-03-06T23:00:32.527 に答える
0

ラジオ ボタンがオンになっているかどうかを確認する代わりに、ラジオ グループの値を確認します。

于 2012-03-06T22:56:03.017 に答える