我有按钮如下 -
Option Explicit
Sub test()
UserForm1.ListBox1.RowSource = ActiveSheet.Range("A1:A2")
End Sub
问题:当我在它之前有一个alert()时,addClass方法完全正常。但是,没有警报(),没有颜色变化。此外,我尝试使用event.stopPropagation()。这并没有解决我的问题。有人让我知道我在这里失踪了吗?提前谢谢!
答案 0 :(得分:2)
您的表单似乎已提交,然后页面重新加载,从而清除表单并中止可能已由提交触发的任何脚本。 另外,你最好听一下表单的提交事件,因为可能有其他触发事件的方法,例如ENTER键,以及其他原因
更好的方法是:
<!--HTML-->
<form id="myform" action="...." ...>
.....
<input type="button" value="Submit" id="tab_button1" class="btn btn-info"/>
</form>
//JS
$(function() {
$('#myform').on('submit', function(e) {
e.preventDefault();
//your code goes here
//you may also want count any unfilled fields and use e.preventDefault()
//if the # is greater than zero
//OR use e.preventDefault() at the top
//then use this.submit() if all fields are filled/provided/checked
});
});
答案 1 :(得分:0)
onclick=" event.preventDefault();validateAllAnswers(event);"
。你必须停止提交表格。然后只有该功能才能正常工作。验证后,您必须使用$("form")[0].submit()
答案 2 :(得分:0)
我认为您的代码无法验证,请参阅该段代码,
var isCompleteTabOne = true;
var isCompleteTabTwo = true;
var isCompleteTabThree = true;
var flag = true;
// isCompleteTabOne and isCompleteTabTwo both are true here
if(isCompleteTabOne == false && isCompleteTabTwo == false)
此外,如果您使用jquery
,请使用on()绑定点击事件,例如
$(function(){
$('#tab_button1').on('click',function(){
// your validation code
});
});
当您使用按钮时,不需要阻止默认行为也没有父元素,因此请避免使用stopPropagation()
答案 3 :(得分:0)
我认为正在发生的事情是表单正在提交,而不是注意 addClass。当你发出警告时,它会暂时停止执行。所以,你可以看到变化。我们需要停止提交,以便您可以看到更改。这听起来不错吗?
您可以尝试在函数中添加return false;
......即
function validateAllAnswers(e) {
e.preventDefault();
// Do whatever
return false;
}
这将停止重定向/提交发生。
然后,您可以在两者之间添加任何代码,并在验证后提交。