我想使用jQuery提交表单,我可以这样做
$('#myform_id').submit();
这一切都很好,但通常有人点击提交按钮而不是提交按钮有值,所以当我通过jQuery提交时我还需要设置提交值我该怎么做?
修改
正如一些答案所指出的,我可以通过模拟用户点击来做到这一点,但我不想这样做,我想在我使用.submit()命令时传递提交值(如果可能的话)
最终使用ajax表单提交
**澄清**
好吧所以我有jQuery设置使用jquery validate并且有一个像这样的提交处理程序
$("#myform_id").validate({
submitHandler: function() {
run_ajax(obj);
}
});
然后调用我的函数我调用run_ajax传递和对象包含有关我想要什么类型的ajax以及你有什么的信息。
并最终运行此
obj.formitem.ajaxSubmit({
dataType:'json',
data: obj.pdata,
});
,其中
obj.formitem == $('#myform_id');
因此,当提交表单时,所有发生的一切都很好。
所以我将带有此表单的页面加载到jquery对话框中,我希望他们能够单击对话框中触发表单提交的按钮,并告诉表单请求提交的是什么类型的提交
希望这很清楚,现在很抱歉混淆
答案 0 :(得分:17)
https://stackoverflow.com/a/993897/215887为我工作
其实我这样做了:
$('<input />').attr('type', 'hidden')
.attr('name', 'myButton')
.attr('value', 'MyButton')
.appendTo('#my-form');
$('#my-form').submit();
答案 1 :(得分:14)
一种快捷方式是$('#myform_id #submitButtonID').click();
答案 2 :(得分:3)
.submit()
将为您提供在页面刷新时发生POST / GET的传统提交。
对于ajax,您需要使用$ .post,$ .get或$ .ajax - 例如:
var aaa = $("#your_form").serialize();
$.post("your_url",aaa,function(response){/*do something*/},"json");
就点击按钮而言,如果您有多个按钮可以提交一个表单。您可以使用隐藏字段作为表单的一部分。在提交表单之前,请根据按下的按钮更改隐藏字段。
$(".submit_buttons").click(function(){
$("#my_hidden_input").val($(this).attr("rel"));
/*
above serialize and ajax post code
*/
});
HTML:
<input type="button" class="submit_buttons" rel="special_button1" value="Button 1"/>
<input type="hidden" id="my_hidden_input" />
当我使用这个验证插件时,我就是这样做的。
$("#right_form").validate(); //To add validation to the form
validate9 = $("#right_form").validate().form(); //Check if the form validates
然后使用if
检查validate9是true
并使用$.post()
提交。
正常的ajax非常简单。
我认为您可能正在使用iframe提交表单的几个原因:
1 )必须以这种方式完成(一些不可改变的要求)
2 )您想使用ajax上传一些文件。
不确定这是否有帮助,但是,如果你想出来,请发一个答案告诉我们你是如何处理的。
答案 3 :(得分:2)
$('#myform').submit(function(event){
/* stop form from submitting normally */
event.preventDefault();
// get form data and include value from submit button
var post_data = form.serializeArray();
post_data.push({name: event.originalEvent.explicitOriginalTarget.name,
value: event.originalEvent.explicitOriginalTarget.value
});
// ...
}
答案 4 :(得分:1)
提交值只是作为参数传递。所以如果你有:
<input type="submit" name="mysubmit" value="click"/>
然后请求将包含请求参数mysubmit = click。
所以只需添加一个隐藏的输入类型:
<input type="hidden" name="mysubmit" value="click"/>
答案 5 :(得分:0)
您可以在表单中添加Submit
按钮,并模拟按钮上的单击。它不能解决你的目的。
答案 6 :(得分:0)
这应该可以解决问题:
$('#form_id #submitbutton_id').val('your value');