在.NET 2.0中,我有几个客户端验证器和.NET验证器控件。当我点击一个按钮时,这些运行正常...直到我将自己的javascript函数添加到此按钮。它似乎阻止它们运行,而不是与验证器一起运行。
要清楚,验证器控件是基本的必需字段验证器,这是我添加的javascript:
<script language="javascript">
function yaya()
{
var chkAmount = document.frmSearchFor.txtCheckAmount.value;
var amtApplied = document.frmSearchFor.lblAmountApplied.value;
if (amtApplied < chkAmount)
{
return confirm('Continue?');
}
}
</script>
它与这样的按钮相关联......
OnClientClick="return yaya();
答案 0 :(得分:1)
这些可能不是正在向您的页面呈现的ID。试试这个:
function yaya()
{
var checkAmount = parseFloat(document.getElementById("<%=txtCheckAmount.ClientID %>").value);
var amoutApplied = parseFloat(document.getElementById("<%=lblAmountApplied.ClientID %>").text);
if (amoutApplied < checkAmount)
{
return confirm('Continue?');
}
}
并试着像这样附上:
OnClientClick="javascript:yaya();";
答案 1 :(得分:0)
客户端验证是通过javascript完成的,就像您的客户端点击一样。当您指定客户端事件时,我猜测无法附加验证代码。您可能需要修改验证代码以调用您的函数,或修改您调用验证代码的函数。可能后者更容易。不是在设计时指定OnClientClick,而是添加一个存储当前单击处理函数的客户端脚本,创建一个运行代码的函数,然后运行存储的处理函数,并将该新函数作为单击处理程序附加。
<script>
var baseHandler = myElement.onclick;
myElement.onClick = function() {
// run your code here
baseHandler();
}
</script>
答案 2 :(得分:0)
问题是您在OnClientClick属性中指定了一个返回。当页面呈现时,它会像这样出现
<input ... onclick="return yaya();WebForm_DoPostBackWithOptions...
OnClientClick="if (!yaya()) { return false; }"
为此工作你还应该包括return true;在函数结束时,如果不满足if检查的条件。
你可能也遇到过Hunter提及的元素引用问题,但是你没有提供你的标记来验证。