单选按钮值发送为" on"提交表格

时间:2013-10-24 21:58:33

标签: javascript jquery forms post

我有一个带有三个单选按钮选项的表单。我需要将表单数据提交到另一个文件,但由于某种原因,发送的数据包含所选单选按钮的值为“on”而不是value属性的值。

我尝试通过post()函数手动操作和发送数据,但由于我需要在提交时重定向页面,因此会产生POST请求,然后是GET请求。此代码的实际目的要求我将此数据发送到处理数据的函数,并决定重定向页面的位置。但是,该函数对GET请求有不同的用途,并在此表单发送GET请求时出错。这种限制首先使这成为一个问题。

有没有办法以某种方式获取单选按钮的值而不仅仅是“打开”,这样只有一个请求从此表单发送?我理解是否唯一的方法是修改数据发送到的功能。

如果其中任何一项不清楚或令人困惑,请发表评论。谢谢你的帮助!

代码:

<form name="send-form" class="send-form" method="POST" action="somefunction>
    <input type="radio" name="option" id="1" val="1">
    <input type="radio" name="option" id="2" val="2">
    <input type="radio" name="option" id="3" val="3">
</form>

<script>
$(".send-form").submit(function(e){
    e.preventDefault();

    // get selected value
    var selected = $("input[type='radio'][name='option']:checked");

    // check if an option was selected
    if (selected.length > 0) {
        selectedValue = selected.attr("id");
            $.post('somefile', {"option" : selectedValue}, function() {
                window.location.href = "somefile";
            });     
        }
    } else {
        alert("Please select an option");
    }
});
</script>

2 个答案:

答案 0 :(得分:9)

您需要使用value,而不是val

<form name="send-form" class="send-form" method="POST" action="somefunction">
    <input type="radio" name="option" id="1" value="1" />
    <input type="radio" name="option" id="2" value="2" />
    <input type="radio" name="option" id="3" value="3" />
</form>

这将在请求中发布option=1option=2option=3

Fiddle

答案 1 :(得分:0)

第一次通过时,我注意到你的表格标签上没有关闭。