【发布时间】:2020-02-07 08:29:26
【问题描述】:
我正在制作一个表格。如果表单无效,我需要通过更改按钮样式和文本提供反馈,以便用户知道他们尝试执行的操作未执行。
如果表单是有效,这就是我要运行的函数,它工作得很好。
$('#form').submit(function(event){
// cancels the form submission
event.preventDefault();
// do stuff if form valid
$("#btn-copy").html('COPY SUCCESS')
console.log('Text is copied.')
});
如果表单无效,我需要运行函数。如果表单有效,则单击和提交都已注册,因此这两个函数会发生冲突。这是我目前失败的解决方法,因为如果表单有效按钮会说 COPY FAIL、COPY SUCCESS、COPY,而不是 COPY SUCCESS
$("#btn-copy").click(function(){
$(this).html('COPY FAIL');
setTimeout(function(){
$('#btn-copy').html('COPY');
},1000);
console.log('COPY FAIL.')
})
我如何运行函数只有当提交按钮被点击,但表单无效(因此,提交没有被触发)。反之,如果表单有效,则只运行我的有效函数。
注意:按钮必须是 type:submit 因为我使用的第一个有效代码,除非有其他选项可以实现我想要实现的目标,因为我不想提交事件,这就是我做事件的原因。防止默认()
【问题讨论】:
-
您是否尝试过使用链接作为按钮?点击后,只需触发验证,如果有效则提交表单。
-
您是否也尝试将
event.preventDefault();添加到点击事件中?然后它不会提交。 -
也有点困惑,因为没有明显的检查 - 如果你点击按钮失败,但如果你提交它没关系?但是按钮必须是提交按钮吗?最简单的答案当然是没有 type=submit 按钮,如果通过了就调用 form.submit()。
-
好吧,我很抱歉造成误解,是的,我需要做一些检查以确定表格是否有效,但我不确定如何。我只如何通过 .submit 检查表单是否有效。所以我在想的是在点击时运行我的“无效函数”。这是有效的,因为如果我单击按钮并且表单无效,则单击中的任何功能都会运行。如果我的表单有效,则单击并提交注册表都会出现问题。我假设如果 event.preventdefault() 到 onclick,那么如果我的表单有效,提交将不会运行并且我的表单将继续失败。不会吗?
标签: javascript jquery html css