【问题标题】:onClientClick not working in JavaScriptonClientClick 在 JavaScript 中不起作用
【发布时间】:2013-01-08 12:32:41
【问题描述】:

如果输入无效,我会尝试显示警报,但 OnClientClick 不起作用,这是我的代码:

function validation1() {

    if (document.getElementById('firstname').value == "" || document.getElementById('firstname').value == "First Name..." ){
    alert("Please Enter First Name");
    } 
    if(document.getElementById('lastname').value == "" || document.getElementById('lastname').value == "Last Name..."){
    alert("Please Enter Last Name");
    }
}


<asp:Button runat="server" ID="SearchButton" Text="Instant Search" OnClick="SearchButton_Click" OnClientClick="validation1" />

我的代码在母版页中,这可能是个问题吗?

尝试了许多不同的方法来使用 OnClientClick 调用该函数,但没有成功:

【问题讨论】:

  • 试试OnClientClick="validation1()"
  • 试过了,试过分号...

标签: javascript asp.net


【解决方案1】:

您在函数调用中缺少括号(括号),您可能还希望验证函数的结果确定服务器端点击是否应该触发:

function validation1() {

if (document.getElementById('firstname').value == "" ||document.getElementById('firstname').value == "First Name..." ){
   alert("Please Enter First Name");
   return false;
} 

if(document.getElementById('lastname').value == "" || document.getElementById('lastname').value == "Last Name..."){
   alert("Please Enter Last Name");
   return false;
}

return true;
}

<asp:Button runat="server" ID="SearchButton" Text="Instant Search" OnClick="SearchButton_Click" OnClientClick="return validation1();" />

这里的主要区别是客户端点击函数返回一个值来说明验证是否通过以及正确声明的实际方法调用,很容易错过:)。

【讨论】:

  • @Wasi - 好的,你知道为什么它不起作用吗?使用像 Firebug/Chrome 这样的 javascript 调试器,您是否看到任何脚本错误?如果您在验证函数的顶部放置一个 laert,它会被调用吗?如果是这样,那么代码可能在尝试获取元素时失败,因为 id 不正确。
【解决方案2】:

试试这个

    function validation1() {

    if (document.getElementById('firstname').value == "" || document.getElementById('firstname').value == "First Name..." ){
    alert("Please Enter First Name");
    return false;
    } 
    if(document.getElementById('lastname').value == "" || document.getElementById('lastname').value == "Last Name..."){
    alert("Please Enter Last Name");
    return false;
    }
}

这是aspx代码

<asp:Button runat="server" ID="SearchButton" Text="Instant Search" OnClick="SearchButton_Click" OnClientClick="return validation1();" />

【讨论】:

  • 你必须“返回 bla();”停止/推迟回发。
猜你喜欢
  • 1970-01-01
  • 2010-11-29
  • 2016-05-18
  • 2021-09-05
  • 2015-05-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多