【问题标题】:How to send a radio button value via AJAX?如何通过 AJAX 发送单选按钮值?
【发布时间】:2015-08-23 08:41:42
【问题描述】:

我创建了一个“全局”ajax-modal-function,它发送 ajax 请求,其值存储在父 #modal-contentdata-array 中。

这就是 HTML 字段的样子(例如):

<input data-array='data[]' name='gender' type='radio' value='1' /> 
<input data-array="data[]" type="password" name="password" />

这就是我在使用 $.ajax JQuery 函数获取当前模态的每个输入字段的所有数据之前存储数据的方式:

var data_array = $('#modal-content').find('*[data-array]').map(function(idx, elem) {    
    return elem.value.trim(); 
}).get();

那么 $.ajax 函数如下所示:

$.ajax({
    type: "POST", url: "ajax_modal.php", dataType: "json",
    data: { 
        data: data_array, 
        data_case: data_case, 
        id: id, 
        uid: uid, 
        dataString: 'modal_save' 
    },
    success: function(data) {

所以数组存储在data_array 中,它工作正常。

但现在我有了这个单选输入字段或复选框。如何根据用户是否单击它来获取数组中的值以存储其值?

【问题讨论】:

  • 您不能使用实际form.submit 的任何特殊原因?这似乎是一种非常奇怪的表单解析方式
  • @BillPull — 这将重新加载页面。问题是关于 Ajax。
  • 复选框或单选按钮有两种状态,truefalse。如果你遍历这些元素,你应该很好。
  • 但是为什么要使用data-array 字段呢?似乎你想要做的只是将表单序列化为 json stackoverflow.com/questions/1184624/…
  • 这是因为这会影响整个网站的太多其他部分需要重写,因为它是用这种特殊的data-array“方法”编码的,以首先发送ajax-data。跨度>

标签: javascript jquery ajax input radio-button


【解决方案1】:

单选按钮和复选框有一个属性checked。如果您所在的输入元素属于 type,您应该明确检查这一点。

var data_array = $('#modal-content').find('*[data-array]').map(function(idx, elem) {
   if (elem.type === 'radio' || elem.type === 'checkbox') {
       return elem.checked && elem.value;
   } else {
       return elem.value.trim(); 
   }
}).get();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-26
    • 1970-01-01
    • 2012-12-19
    • 1970-01-01
    • 1970-01-01
    • 2013-07-08
    • 1970-01-01
    相关资源
    最近更新 更多