同一页面上的两个表单和两个脚本,无论提交如何调用第一个脚本
two forms and two scripts on same page, the first script is invoked regardless of submit
我有一个包含两种形式的页面,一种用于提交一些数据和来自数据库的 return 数据,另一种用于对数据库进行自动完成搜索,然后应该 return 来自数据库的数据.
这两种形式在不同的页面中按预期工作,现在我试图将它们放在一个页面中,但如果我在第二种形式上执行自动完成/全文搜索,我会从第一种形式获得结果。
我认为问题是 javascript 正在捕获第一个表单中的数据,无论按下什么提交按钮,这两个表单具有不同的操作路径。
这是第一个脚本:
jQuery(function ($) {
$(document).ready(function () {
var form = $('form');
form.submit(function (e) {
e.preventDefault();
$.ajax({
url: form.prop('action'),
type: 'post',
dataType: 'json',
data: form.serialize(),
success: function (data) {
var obj = (data);
var resultStr = "";
//something
$("#results").html(resultStr);
}
});
});
});
});
第二个
$(document).ready(function () {
$('input:text').bind({});
$('input:hidden').bind({});
$("#models").autocomplete({
minLength: 1,
source: URL
});
});
那么,为什么页面 returning resultStr 并填充 div 而不是我使用第二个脚本进行全文搜索后询问的数据?有什么想法吗?
好的,如果您想将相同的提交事件附加到您的所有表单,然后确定提交了哪个表单以便您可以检索表单的 action
,例如,您需要按照在首先放置然后在提交块中检索表单对象,如下所示:
这是 jsFiddle 示例:http://jsfiddle.net/bu9v52fm/
jQuery(function ($) {
$(document).ready(function () {
//attach event to all forms
$('form').submit(function (e) {
//output $(this) form into a variable and proceed
//--------------
var form = $(this);
//--------------
e.preventDefault();
$.ajax({
url: form.prop('action'),
type: 'post',
dataType: 'json',
data: form.serialize(),
success: function (data) {
var obj = (data);
var resultStr = "";
//something
$("#results").html(resultStr);
}
});
});
});
});
我有一个包含两种形式的页面,一种用于提交一些数据和来自数据库的 return 数据,另一种用于对数据库进行自动完成搜索,然后应该 return 来自数据库的数据. 这两种形式在不同的页面中按预期工作,现在我试图将它们放在一个页面中,但如果我在第二种形式上执行自动完成/全文搜索,我会从第一种形式获得结果。 我认为问题是 javascript 正在捕获第一个表单中的数据,无论按下什么提交按钮,这两个表单具有不同的操作路径。 这是第一个脚本:
jQuery(function ($) {
$(document).ready(function () {
var form = $('form');
form.submit(function (e) {
e.preventDefault();
$.ajax({
url: form.prop('action'),
type: 'post',
dataType: 'json',
data: form.serialize(),
success: function (data) {
var obj = (data);
var resultStr = "";
//something
$("#results").html(resultStr);
}
});
});
});
});
第二个
$(document).ready(function () {
$('input:text').bind({});
$('input:hidden').bind({});
$("#models").autocomplete({
minLength: 1,
source: URL
});
});
那么,为什么页面 returning resultStr 并填充 div 而不是我使用第二个脚本进行全文搜索后询问的数据?有什么想法吗?
好的,如果您想将相同的提交事件附加到您的所有表单,然后确定提交了哪个表单以便您可以检索表单的 action
,例如,您需要按照在首先放置然后在提交块中检索表单对象,如下所示:
这是 jsFiddle 示例:http://jsfiddle.net/bu9v52fm/
jQuery(function ($) {
$(document).ready(function () {
//attach event to all forms
$('form').submit(function (e) {
//output $(this) form into a variable and proceed
//--------------
var form = $(this);
//--------------
e.preventDefault();
$.ajax({
url: form.prop('action'),
type: 'post',
dataType: 'json',
data: form.serialize(),
success: function (data) {
var obj = (data);
var resultStr = "";
//something
$("#results").html(resultStr);
}
});
});
});
});