超文本标记语言文本框的javascript / jquery

html.textbox javascript/jquery

本文关键字:jquery javascript 文本 超文本标记语言      更新时间:2023-09-26

我有下面的ajax表单。在表单中,我有两个文本框。有一个单选按钮可以在解锁和重置密码之间进行选择。我要做的是,如果我选择解锁密码标签和文本框应该消失。只有当标签和文本框是纯html时,我才能用下面的javascript函数做到这一点。如果我这样做,Ajax不会获取password的值。非常感谢你的帮助。

<input name="rblTooType" value="Unlock" type="radio" checked="checked" onclick="rblToolType_OnChange(true)" />Unlock
<input name="rblTooType" value="reset" type="radio" onclick="rblToolType_OnChange(false)" />reset Password 
@using(Ajax.BeginForm("Search","User",new AjaxOptions { 
                UpdateTargetId = "divResults"      
            })){   
            @Html.Label("UserName")
        @Html.TextBox("term")
        @Html.Label("Password")
        @Html.TextBox("Password")
    <input id="btnSubmit" type="submit" value="Unlock"/>
    }
    <script type="text/javascript">
        function rblToolType_OnChange(isUnlock) {
            if (isUnlock) {
                Password.style.display = "none";
                btnSubmit.value = "Unlock";
            }
            else {
                Password.style.display = "";
                btnSubmit.value = "reset Password";
            }
        }
    </script>

您似乎依赖于IE的旧怪癖,其中元素名称和id被添加为全局变量。依赖它是不好的做法,因为其他浏览器不支持它(这从一开始就是一个非常糟糕的主意)。正确引用您的表单元素,它应该工作。例如

    function rblToolType_OnChange(isUnlock) {
        var form = document.forms['<form name>']
        if (isUnlock) {
            form.Password.style.display = "none";
            form.btnSubmit.value = "Unlock";
        }
        else {
            form.Password.style.display = "";
            form.btnSubmit.value = "reset Password";
        }
    }