发布单选按钮的结果,单击使用Ajax

时间:2018-08-25 18:03:06

标签: javascript jquery ajax

我正在尝试创建一个脚本,该脚本使用Ajax发布单选按钮单击的结果。

到目前为止,我有:

<label>
    <input type="radio" name="DisableAd" value="0" id="RadioGroup1_0" />
    Radio
</label><br/>
<label>
    <input type="radio" name="DisableAd" value="0" id="RadioGroup1_1" />
    Radio
</label>

和:

$(document).ready(function() {
  $('.DisableAd').click(function() {
    event.preventDefault();

    var parameters = {
      'disAd': $('input[name="DisableAd"]').val(),
    };
    if (parameters == 0) {
      parameters = 0;
    } else {
      parameters = 1;
    }

    console.log('Posting: ', parameters);

    $.ajax({
      url: 'disableAd.php',
      data: parameters,
      type: 'post',
      dataType: 'json',
      success: function(data) {
        //  ... do something with the data...
        console.log('Ad disabled', data);
      }
    });
  });
});

上面的代码不起作用,但是我看不到我要去哪里。

非常感谢您的宝贵时间。

2 个答案:

答案 0 :(得分:1)

您正在为点击处理程序使用选择器".DisableAd",但是您没有该名称的类。而是使用$('[name="DisableAd"]')

我还更改了单选值,以便您可以看到parameters对象disAd属性分配的反射变化-我将其更改为$(this).val(),希望对您有所帮助< / p>

$(document).ready(function() {
  $('[name="DisableAd"]').click(function() {
    //event.preventDefault();

    var parameters = {
      'disAd': $(this).val(), // changed this as well so you can retrieve selected radio value
    };
    
    if (parameters.disAd == 0) {
      parameters = 0;
    } else {
      parameters = 1;
    }

    console.log('Posting: ', parameters);

    $.ajax({
      url: 'disableAd.php',
      data: parameters,
      type: 'post',
      dataType: 'json',
      success: function(data) {
        //  ... do something with the data...
        console.log('Ad disabled', data);
      }
    });
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<label>
<input type="radio" name="DisableAd" value="0" id="RadioGroup1_0" />
Radio</label><br/>
<label>
<input type="radio" name="DisableAd" value="1" id="RadioGroup1_1" />
Radio</label>

答案 1 :(得分:0)

您已使用类选择器$('。DisableAd')。click(function()....

但是您还没有在单选按钮输入类型元素中声明class属性。

在输入类型元素中声明一个类,如下所示:

<input type="radio" class="DisableAd" name="DisableAd" value="0" id="RadioGroup1_0" /> Radio</label><br/> <label> <input type="radio" class="DisableAd" name="DisableAd" value="0" id="RadioGroup1_1" /> Radio</label>

它将起作用! :)