gpt4 book ai didi

javascript - 提交前修改表单数据

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:52:40 29 4
gpt4 key购买 nike

我将 jQuery 与 form plugin 结合使用我想在提交之前拦截表单数据并进行更改。

表单插件有一个名为 beforeSubmit 的属性应该执行此操作,但我似乎无法运行我指定的函数。

这是表单的标记(省略了一些样式细节):

<form id="form1">
<fieldset id="login">
<legend>Please Log In</legend>
<label for="txtLogin">Login</label>
<input id="txtLogin" type="text" />
<label for="txtPassword">Password</label>
<input id="txtPassword" type="password" />
<button type="submit" id="btnLogin">Log In</button>
</fieldset>
</form>

这是我目前拥有的 javascript:

$(document).ready(function() {
var options = {
method: 'post',
url: 'Login.aspx',
beforeSubmit: function(formData, form, options) {
$.each(formData, function() { log.info(this.value); });
return true;
}
};
$('form#form1').ajaxForm(options);
});

(log.info() 来 self 正在使用的 Blackbird 调试器库)

当我单击提交按钮时,它使用 GET 而不是我指定的 POST 动词,并且我的 beforeSubmit 函数没有记录任何内容。似乎 ajaxForm 插件根本没有应用于表单,但我不明白为什么。有人可以帮忙吗?

最佳答案

我通过 firebug 运行了以下代码,它看起来像宣传的那样工作,但是 beforeSubmit 回调中的 formData 变量为空,因为您没有在文本框上设置名称属性。

<script type="text/javascript">
$(document).ready(function() {
var options = {
beforeSubmit: showData
};
$('form#form1').ajaxForm(options);
});
function showData(formData, form, options) {
//var formData = [ { name: 'username', value: 'jresig' }, { name: 'password', value: 'secret' } ];
$.each(formData, function(i, obj) { log.info(obj.name + " | " + obj.value); });
return true;
}
</script>

<form id="form1" action="Login.aspx" method="post">
<fieldset id="login">
<legend>Please Log In</legend>
<label for="txtLogin">Login</label>
<input id="txtLogin" type="text" name="User" />
<label for="txtPassword">Password</label>
<input id="txtPassword" type="password" name="Pass" />
<button type="submit" id="btnLogin">Log In</button>
</fieldset>
</form>

关于javascript - 提交前修改表单数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/344451/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com