0

ユーザーがラジオをクリックすると変数が設定され、次に2番目のラジオをクリックして2番目の変数が作成されるようにしようとしています。

次に、これら 2 つの変数をマージし、作成された変数に基づいて ajax を介してデータをロードします。それをテストするために、変数がそこにあるかどうかをテストするためだけにクリックできるボタンを作成しましたが、表示されないので、何か正しいことをしていないと思います。

私はこれに非常に慣れておらず、多くの問題を抱えています。

<script type="text/javascript">
  $(function(){
    $("input:radio[name=f_1]").click(function() {
      type = $(this).val();
    });

    $("input:radio[name=f_1a]").click(function() {
      prod = $(this).val();
    });

    var type, prod;
    var JobType = type + prod;
    $("#alertButton").click(function(){
      alert (JobType);
    });
  });
</script>
4

2 に答える 2

0

次のコードを使用できます。

$("input:radio").change(function() {

    var selected = $("input:radio:checked");

    if ( selected.length === 2 ) {
        var f = $("input[name='f']:checked").val();
        var z = $("input[name='z']:checked").val();           
        alert('we have values ['+z+f+']');
    }

});

あなたのコードでは、関数のスコープ外に変数宣言があるため、必要な変数を取得できませんでした。

于 2012-04-23T15:31:20.323 に答える
0

変数は関数内にないため、ページの読み込み時 (空の場合) にのみ結合されます。

先頭で変数を宣言し、変数が実際に値を持っているときに変数の結合をクリック関数内に配置すると、問題なく動作します。

$(function(){
    var type="", prod="", JobType="";

    $("input:radio[name=f_1]").click(function() {
        type = $(this).val();
    });

    $("input:radio[name=f_1a]").click(function() {
        prod = $(this).val();
    });


    $("#alertButton").click(function(){
        JobType = type + prod;
        alert (JobType);
    });
});​

変数に何もない初期値 ("") を指定すると、「未定義」の問題を回避できます。

ここにフィドルがあります

于 2012-04-23T15:37:19.447 に答える