在Javascript函数中传递参数产生意外结果

时间:2013-06-13 12:13:51

标签: javascript parameters event-handling

我有一个函数,我将ID参数作为对象传递给javascript函数,但是浏览器不会将其读取。

<div id="searchByUser">
    <input type="text" runat="server" id="txtSearchByEmail"  onclick="ButtonEnabled('butSearchByEmail', 'txtSearchByEmail')" onkeyup="ButtonEnabled('butSearchByEmail', 'txtSearchByEmail')" />
   <input type="button" runat="server" id="butSearchByEmail" onserverclick="butSearch_Click" value="Search User" disabled/>
</div>

如果我这样做而不是ButtonEnabled('MainContent_butSearchByEmail', 'MainContent_txtSearchByEmail')它可以正常工作。

我从浏览器(Google Chrome)获取此信息

有没有一种方法可以在没有“硬编码”的情况下这样做呢?

这是javascript函数

function ButtonEnabled(objButton, objText) {
    var t = document.getElementById(objText);
    var b = document.getElementById(objButton);
    if (t.value.length > 1) {
        b.disabled = false;
    }
    else {
        b.disabled = true;
    }    
}

1 个答案:

答案 0 :(得分:1)

查看您的代码,您正在使用asp.net。您必须使用ClientID

<div id="searchByUser">
    <input type="text" runat="server" id="txtSearchByEmail"  onclick="ButtonEnabled('<%= butSearchByEmail.ClientID %>', '<%= txtSearchByEmail.ClientID %>')" onkeyup="ButtonEnabled('<%= butSearchByEmail.ClientID %>', '<%= txtSearchByEmail.ClientID %>')" />
   <input type="button" runat="server" id="butSearchByEmail" onserverclick="butSearch_Click" value="Search User" disabled/>
</div>