0

I am using Jquery to hide a textbox and show it when the user clicks a button

Hide:

$('#TextBox1').hide();

Show:

$('#TextBox1').show();

Everything works fine. But on google chrome, the textbox is losing its value. if the user type a text then hide it and show it again the textbox is empty.

This is happening only on google chrome. On firefox and explorer it works fine

Any idea about it?

Thanks

EDIT: There is something i forgot to mention is that i am hiding the DIV that contains the textbox and not the textbox itself here is the Jcode

    $("#EditName").click(function (event) {
        event.preventDefault();
        $("#TextBoxDIV").show();
    }
    $("#HideName").click(function (event) {
        event.preventDefault();
        $("#TextBoxDIV").hide();
    }

and the textbox

    <div id = "TextBox1" class="TextFieldEditSmaller">
        @Html.TextBoxFor(m => m.Name) //This is an MVC3 application
    </div>

EDIT2: I just noticed that the text is there but it is hidden behind something. if I CTRL + A inside the textbox and then I copy/Paste in notepad it shows

4

2 回答 2

0

没有看到你的实际 html 代码很难说,但你可以做的是尝试隐藏实际的文本框然后 div,通过执行以下操作:

$("#HideName").click(function (event) {
    event.preventDefault();
    $("#TextBoxDIV").children(":first-child").hide();
    $("#TextBoxDIV").hide();
}

如果这不起作用,您可以使用 jquerys 数据实用程序 http://api.jquery.com/jQuery.data/存储文本

然后重新填充显示的文本框。使用 http://api.jquery.com/text/访问和设置 html 元素的文本内容 注意:我使用 .children(":first-child") 的原因是因为您的 mvc3 应用程序将被翻译成 html,我们不知道它的 id/class(如果有的话)到底是什么

于 2012-04-13T21:04:56.253 回答
0

它非常适合我。

这是我使用的代码:

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<textarea>test</textarea>
<button>Hide</button><button>Show</button>

<script type="text/javascript">
$("button:first").on("click", function(json) {
    $("textarea").hide();
})
$("button").eq(1).on("click", function(json) {
    $("textarea").show();
})
</script>

也许您发布完整代码,以便我们确定您的问题是什么?

于 2012-04-13T20:45:36.980 回答