尝试将jquery变量传递给查询字符串

时间:2013-11-19 20:54:48

标签: jquery html radio-button

我有两个单选按钮,我想获取检查的值,然后传递给url查询字符串:

这是html

<h3>Please select an audience</h3>
  <p><input class="age" type="radio" name="ageLimit" value="allAge"/> All ages </p>
  <p><input class="age" type="radio" name="ageLimit" value="mature"/> Mature</p>

这是js:

当我使用它时,数据库会拉[object,Object]

url : 'upload.php?aud='+$('input[name="ageLimit"]:checked', '#myForm').val($('input:radio[name="ageLimit"]:checked', '#myForm')),

当我使用它时它只会拉出第一个变量

url : 'upload.php?aud='+$('input[name="ageLimit"]:checked', '#myForm').val(),

如何将checked变量传递给查询字符串?我在SO上看过几个类似的问题,但没有什么可以处理查询字符串

3 个答案:

答案 0 :(得分:4)

使用jQuery的serialize将表单压缩为查询字符串:

$('#myForm').serialize()

$('input[name="ageLimit"]:checked', '#myForm').serialize()

当您将jQuery对象转换为字符串时,这就是您所获得的[Object object]。您的第一个示例设置表单元素的值,然后返回jQuery对象,以便您可以链接其他方法。

您的第二次尝试val()会返回您所追求的值。如果要获取几个值,则必须选择元素,然后map将它们设置为其值,然后加入生成的数组。但你不应该这样做。您应该使用serialize为您执行此操作。

答案 1 :(得分:1)

快照以上序列化。我个人喜欢ajaxForm插件(http://malsup.com/jquery/form/)。

如果您的目标是将所选的无线电值转换为网址,则在jsfiddle(下面的链接)上使用它。

http://jsfiddle.net/NQ6wH/

<h3>Please select an audience</h3>
<form>
  <p><input class="age" type="radio" name="ageLimit" value="allAge"/> All ages </p>
  <p><input class="age" type="radio" name="ageLimit" value="mature"/> Mature</p>
</form>
<button id="testMe">Test Me</button>

$('#testMe').click(function(e){
    e.preventDefault();
    var url = 'upload.php?aud=' + $('input[name=ageLimit]:checked').val();
    alert(url);
});

答案 2 :(得分:0)

事实证明我的问题完全在其他地方并且上传者需要评估/传递单选按钮。 Gahhhhh。感谢您的帮助! -

这是链接:Why am I getting "undefined" passed to the db? jquery php plupload

var uploader = $('#uploader').plupload('getUploader');

uploader.bind('BeforeUpload',function(upldr,file){
upldr.settings.url = 'upload.php?aud=' + $('input[name="ageLimit"]:checked', '#myForm').val();
// here some runtimes might need a upldr.refresh(); (Though I'm not sure, I guess I remember Flash would.)
}
);