0

次のasp.netコードでボタンクリック時にコントロールIDを送信しようとしています:

  <asp:TextBox ID="empid" runat="server" CssClass="input_box" onFocus="if (this.value == this.title) this.value='';" onBlur="if (this.value == '')this.value = this.title;" value="Enter employee ID" title="Enter employee ID" onClick="changecol(this)"></asp:TextBox>

 <asp:Button ID="abc" runat="server" Text="xxx" 
        CssClass="submit_button" onclick="abc_Click" OnClientClick="return checkEmpid('<%=empid.ClientID%>')"/>

Javascriptは次のとおりです。

function checkEmpid(id){
var idValue = document.getElementById(id).value;
alert(idValue);
return false;
}

次のコードを使用すると、アラートで null が発生します。

<asp:TextBox ID="empid" runat="server" CssClass="input_box" onFocus="if (this.value == this.title) this.value='';" onBlur="if (this.value == '')this.value = this.title;" value="Enter employee ID" title="Enter employee ID" onClick="changecol(this)"></asp:TextBox>

 <asp:Button ID="abc" runat="server" Text="xxx" 
        CssClass="submit_button" onclick="abc_Click" OnClientClick="return checkEmpid()"/>

function checkEmpid(){
var idValue = document.getElementById('<%=empid.ClientID%>').value;
alert(idValue);
return false;
}

アラートで、テキスト ボックスに値が入力されました。コントロールのclientidをJSのパラメーターとして送信したいこの問題を解決するのを手伝ってください。

4

4 に答える 4

1

パラメータを介してUserControl名を確実に渡したい場合は、コードビハインドで関数呼び出しを設定することが唯一のオプションだと思います...

C#...

abc.OnClientClick = string.Format("return checkEmpid('{0}');", empid.ClientID);

VB.NET...

abc.OnClientClick = String.Format("return checkEmpid('{0}');", empid.ClientID)

(UserControl IDではなく、TextBox IDが必要であることに気付いたので、更新しました)

于 2012-07-03T09:20:13.033 に答える
1

この方法で empid テキストボックスのクライアント ID を JavaScript に送信できます。

    abc.Attributes.Add("onclick", "return checkEmpid('" + empid.ClientID + "')");


    function checkEmpid(clientIdOfempid){      
        alert("This is id of TextField with ID=empid >> "+clientIdOfempid);
        return false;
    }

また

'<%=empid.ClientID%>'この方法でクライアントIDを取得できます

function checkEmpid(){
    var id = '<%=empid.ClientID%>';
    alert("This is id of TextField with ID=empid >> "+id);
    return false;
}
于 2012-07-03T09:06:03.360 に答える
0
alert('<%=empid.ClientID%>');

これを試してIDを取得してください

于 2014-05-23T08:17:35.033 に答える
0

ID自体をアラートする方が簡単ではありませんか?

alert('<%=empid.ClientID%>');
于 2012-07-03T09:02:28.360 に答える