Javascript 如何添加name input submit()jQuery
我有一个JavaScript,它将输入按钮的属性更改为“disabled”,这样用户就不会提交页面两次Javascript 如何添加name input submit()jQuery,javascript,jquery,django,Javascript,Jquery,Django,我有一个JavaScript,它将输入按钮的属性更改为“disabled”,这样用户就不会提交页面两次 // Disables multiple submit function disableSubmit (btn, submitForm) { // Sets button as disabled, changes class and cursor $(btn).attr("disabled", true); $(btn).toggleClass("disabled al
// Disables multiple submit
function disableSubmit (btn, submitForm) {
// Sets button as disabled, changes class and cursor
$(btn).attr("disabled", true);
$(btn).toggleClass("disabled alt2");
$(btn).css('cursor', 'initial');
$(btn).attr("value", "Sender...");
// Submits form
$(submitForm).submit();
}
// Disables submit for order form
$("#send-order").click(function () {
return disableSubmit(this, "#order");
});
问题是我需要跟踪提交页面的按钮的名称,以便在Djangoview.py
文件中处理它
HTML
但是,如果我使用脚本提交页面,我无法获取提交页面的输入的名称。有没有办法在我的脚本中为提交页面的按钮设置名称
我试过了,但没有成功:
$(submitForm).submit().attr("name", "send-order");
解决方案
我必须更改
views.py中的代码才能正常工作。您可以使用preventdefault或返回false
$("#send-order").click(function (event) {
event.preventDefault();
return disableSubmit(this, "#order");
});
或
实现这一点的一种方法是在表单上创建一个具有自己名称的隐藏输入。像下面这样
我添加了preventdefault(),还返回了false。它仍然不起作用。$(submitForm).submit().attr(“value”,$(btn).attr(“name”);
这难道不会有相同的结果吗?这没有什么意义,因为你要做的是先提交,然后设置值。如果你想传递值,你需要先更改它,然后提交。也就是说,$(submitForm).attr(“value”,$(btn).attr(“名称”).submit()
。顺序很重要。编辑:为了回答你的问题,它的结果与我发布的代码不一样。好吧。但是如果我不创建一个新按钮,而只是使用我用来提交的按钮,为什么它不起作用呢?无论如何,有一个新的隐藏输入也不起作用。我想我必须改变我的逻辑,停止搜索那个按钮打开。我不是建议您创建一个新按钮。我是建议您创建一个隐藏的输入。无论如何,如果您只使用您现在使用的按钮,并给它一个名称,将传递的值是按钮的文本。例如,这样的按钮:
将值“立即提交我!”传递给request.POST.get(“测试”)。您要求的是使用按钮的“名称”,但名称不同。
元素上的“value”属性也不会被传递。
$(submitForm).submit().attr("name", "send-order");
$("#send-order").click(function (event) {
event.preventDefault();
return disableSubmit(this, "#order");
});
<input id="send-order" value="Send" type="submit" onclick="disableSubmit(this, '#order');return false" />