【发布时间】:2010-12-30 18:31:34
【问题描述】:
我想发布表单但不想使用提交方法。如果我使用 JQuery,如何处理 Form 输入控件?
【问题讨论】:
我想发布表单但不想使用提交方法。如果我使用 JQuery,如何处理 Form 输入控件?
【问题讨论】:
您可以使用 jQuery AJAX .post function 函数。一个例子(未经测试,但应该可以工作):
<script>
function postit(obj) {
var data = $(obj).serialize();
$.post($(obj).attr("action"), data, function() {
//Put callback functionality here, to be run when the form is submitted.
});
}
</script>
<form action="posthandler.php" onsubmit="postit(this); return false;">
<input type="text" name="field">
<input type="submit">
</form>
另外,阅读serialize
(当然在使用此代码之前,您需要在代码中包含 jQuery 库)。
【讨论】:
只需创建一个由您想要的任何事件触发的函数,例如:(在另一个问题中找到此代码)
function example() {
// get all the inputs into an array.
var $inputs = $('#myForm :input');
// not sure if you wanted this, but I thought I'd add it.
// get an associative array of just the values.
var values = {};
$inputs.each(function() {
values[this.name] = $(this).val();
});
}
之后,您可以对输入值做任何您想做的事情。不过,您可能需要考虑使用更高级的处理,有很多插件可以提供这种功能。
【讨论】:
我不确定我是否正确理解了这个问题。
如果您不想使用submit(),您可以使用Ajax 通过jQuery.post() 执行相同的操作。主要区别在于您必须自己从输入字段中构建键值数据,而不是浏览器自动构建,并且您不会刷新页面。
【讨论】:
无论是发布功能还是加载功能都可以使用。
@PRK 您是否尝试在页面加载或用户点击按钮时发布表单?
加载(网址、参数、回调)
例如:
$("#loadItHere").load("some.php", {somedata: 1});
【讨论】: