protected void btnNext_Click(object sender, EventArgs e)
{
btnNext.InnerHtml = "CLICK";
}
<button type="submit" runat="server" onserverclick="btnNext_Click" id="btnNext">Next ></button>
这很好,但是当我添加一个onclick事件时:
<button type="submit" runat="server" onserverclick="btnNext_Click" onclick="return checkForm();" id="btnNext">Next ></button>
头脑中:
<script type="text/javascript">
function checkForm() {
if (document.getElementById("<%=lstChooseSpec.ClientID %>").value) {
return true;
} else {
$.jGrowl("<strong>Warning!</strong><br />Please select an item", { sticky: true });
return false;
}
}
</script>
它提交表单,但不会将按钮文本更改为“CLICK”。虽然表单仍在提交,但只有在未定义onclick()时,文本才会更改为“CLICK”!
答案 0 :(得分:8)
尝试没有'返回':
<button type="submit" runat="server" onserverclick="btnNext_Click" onclick="checkForm();" id="btnNext">Next ></button>
或者,如果您希望checkForm()控制是否发布 - 请执行以下操作:
onclick="if (!checkForm()) return;"
答案 1 :(得分:7)
您之所以看到这一点,是因为当您同时使用按钮时,它会运行您的点击处理程序,然后是__doPostBack function,因此onclick看起来像这样
onclick="return checkForm(); __doPostBack('btnNext','')
因为你可以看到__doPostBack,它实际上设置了要调用的服务器函数,从不被调用。但是,由于该按钮的类型为submit,表单仍会发送回服务器。
答案 2 :(得分:0)
试试这个:
onclick="javascript:if (!validaForm()) return false;"
它对我有用。
答案 3 :(得分:0)
前端
<button id="submit1" runat="server"
onclick="if(confirm('Sure?')) { } else{ return false} ;" onserverclick="submit_ServerClick" >save</button>
后端
protected void submit_ServerClick(object sender, EventArgs e)
{
}
答案 4 :(得分:0)
您可以尝试使用LinkButton
:
<asp:LinkButton type="submit" runat="server" onserverclick="btnNext_Click" onclick="return checkForm();" id="btnNext">Next ></asp:LinkButton>