使用Javascript更改ASP文本框属性

时间:2013-10-11 04:55:49

标签: javascript asp.net forms

所以我有这个包含TextBoxtA和TextBoxtB的ASP.NET表单。我希望如果我在TextBoxA上输入某些输入(例如'000'),TextBoxtB文本值将被设置为'TextChanged'并被禁用。

PS:我希望在文本di TextBoxA更改后立即发生,而不是在onClick触发时。所以我使用onTextChanged属性。根据这个http://forums.asp.net/t/1300979.aspx,我必须改为使用onChange并在我的代码背后更改PageLoad上的poperty。但它似乎无法奏效。

所以继承我的代码:

<script runat="server">
    function changeText() {
        var A = document.getElementById('<%=inputTexboxtA.ClientID%>').value;
        var B = document.getElementById('<%=inputTexboxtB.ClientID%>').value;

        if (A = '000') {
            B = 'TextChanged';
        }
    }
</script>

protected void Page_Load(object sender, EventArgs e)
            {
                inputTexboxtA.Attributes.Add("onChange", changeText());
            }

<asp:TextBox ID="inputTexboxtA" runat="server" MaxLength="3"/></td>
<asp:TextBox ID="inputTexboxtB" runat="server" MaxLength="3"/></td>

我做得对吗?先谢谢!

2 个答案:

答案 0 :(得分:1)

基本没有,你做错了。 OnChange不是文本框的事件。 在用户更改字段时查看OnBlur,或在用户键入其他选项时查看OnKeyUp。 Potentialy使用两者。

您可能还想调查jQuery

您还有语法错误和其他问题。您需要使用==!=进行比较。此外,您不会更改B的值:

function changeText() {
    var A = document.getElementById('<%=inputTexboxtA.ClientID%>').value;
    var B = document.getElementById('<%=inputTexboxtB.ClientID%>');

    if (A == '000') { // or (A != '000')
        B.value = 'TextChanged';
    }
}

OnBlur示例:http://jsfiddle.net/4HwmU/

更新:所以我累的时候不应该编码! OnChange很好,问题是代码中的各种错误

OnChange示例:http://jsfiddle.net/4HwmU/1/

有关OnBLur和更改之间的差异的更多信息:What is the difference between onBlur and onChange attribute in HTML?

答案 1 :(得分:0)

protected void Page_Load(object sender, EventArgs e)
        {
            inputTexboxtA.Attributes.Add("OnKeyUp", changeText());
        }