【问题标题】:radio button values not being submitted未提交单选按钮值
【发布时间】:2011-04-20 23:41:46
【问题描述】:

我一定是疯了……

我有一个带有一些单选按钮的表单,但无论如何,POST 只包括单选按钮的名称,而不是选择的值:

   <input type="radio"  name="storage" value="1" id="ds_d">
   <input type="radio"  name="storage" value="2" id="ds_p">
   <input checked type="radio"  name="storage" value="3" id="ds_n">

选择第二个无线电 (val 2; ds_p) 并提交,这是 var_dump:

["storage"]=>  string(1) "0" 

事实上,无论检查哪个,它都是完全相同的 var_dump。

WTH 正在发生吗?

谢谢。

ps,如果重要的话,表单会通过 jquery 加载到另一个 div 中。


编辑:它似乎与ajax有关。这是加载表单的代码:

$.get('/page/init/', function(data){
    $("#form_txt").html(data);
});

编辑 2:只是为了清楚一点:无论我是通过“提交”按钮提交,还是通过 ajax serialize() 提交,它的行为都是一样的。

【问题讨论】:

  • 我刚刚测试了您的确切代码... 'storage' => string '3' (length=1) 让我认为这是加载方式的问题,也许值没有得到放?即使没有 value 字段,它仍应返回“on”。您能否链接到演示或提供更多代码?
  • 你试过没有 jquery 吗?
  • 看来 jquery 组件是一个因素。让我们也看看这段代码。
  • 您是否尝试添加其他类型,例如文本字段?帮助您确定是收音机问题还是一般表单问题。
  • @sprain 收音机是更大形式的一部分;复选框,文本字段,其他一切都按预期工作。 @luckytaxi:id 确实在没有加载 jquery 的情况下进行了尝试,它可以正常工作。 @webbiedave:是的,我会添加它。@Gazler:没有演示

标签: jquery ajax forms radio-button


【解决方案1】:

问题是我有一个 jQuery 函数可以清除焦点上的文本框等,它正在调用所有输入,例如

$('input').focus(function(){
    $(this).val('');
});

所以我不得不告诉它不要将收音机的 val 设为空白:

$('input:not(:radio)').focus(function(){
    $(this).val('');
});

狡猾的小家伙。

感谢您的帮助....

【讨论】: