我正在尝试阻止此表单导致整个页面刷新。当我在这里的其他地方搜索时,答案通常是使用return false;但是,这已经存在于代码中,但它仍在重新加载页面
<input type="submit" name="PC13871$btnRefresh" value="Search" onclick="(function(btn){var bDisableMe=true;if(typeof(Page_ClientValidate)=='function'){bDisableMe=Page_ClientValidate('PC13871');}__doPostBack('PC13871$btnRefresh','');btn.disabled=bDisableMe;})(this);return false;" id="PC13871_btnRefresh" class="BBFormSubmitButton DirectoryFormSubmitButton"></input>
有人有任何想法吗?这段代码是由CMS生成的,所以我可以用javascript / jQuery攻击它,但不幸的是不能编辑html。
答案 0 :(得分:0)
此处其他地方是正确的:如果您返回false,则您的按钮将不会提交。
因此:
要检查 1 ,请在onclick语句的最开头添加一个false。然后你可以移动返回,直到你测试了整个onclick。
您还可以添加[alert][1]
以确保代码已到达您的回程行。不要将console.log用于此目的,因为它不会停止流程。
在此之后,要查找 2 ,您可以在Google Chrome上打开控制台并查看最可能分配的元素。关注表单并在右侧(在控制台上)检查事件监听器部分。用你的按钮做同样的事。
注意:在确定提交表单的内容(以及原因)之前,请不要使用event.preventDefault()
。这样做不仅是不好的做法,而且将来肯定会遇到麻烦。
答案 1 :(得分:-2)
$("#PC13871_btnRefresh").click(function (e) {
e.preventDefault();
alert("Handler for .click() called.");
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="submit" name="PC13871$btnRefresh" value="Search" onclick="(function(btn){var bDisableMe=true;if(typeof(Page_ClientValidate)=='function'){bDisableMe=Page_ClientValidate('PC13871');}__doPostBack('PC13871$btnRefresh','');btn.disabled=bDisableMe;})(this);return false;" id="PC13871_btnRefresh" class="BBFormSubmitButton DirectoryFormSubmitButton"></input>
&#13;
使用e.preventDefault()
。它将取消类型为submit