2012-04-13 65 views
0

隐藏我使用jQuery来隐藏文本框,当用户点击一个按钮文本框失去文本时,我用jQuery

隐藏表现出来:

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

显示:

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

一切工作正常。但在谷歌浏览器上,该文本框正在失去其价值。如果用户键入文本,然后隐藏它并再次显示该文本框是空的。

这只发生在谷歌浏览器上。在Firefox和资源管理器,它工作正常

有关它的任何想法?

感谢

编辑: 有件事我忘了提的是,我躲在一个包含文本,而不是文本框本身 这里的DIV是Jcode

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

和文本框

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

编辑2:我只是注意到文本在那里,但它隐藏在一些东西后面。如果我CTRL + A里面的文本框,然后我复制/粘贴在记事本中它显示

+1

你能发布更多的代码吗?价值不应该消失。 – c0d3Junk13 2012-04-13 20:43:15

+0

你有具体的测试用例吗?一些额外的HTML代码或JavaScript代码去与此? – blocco 2012-04-13 20:44:30

+0

我编辑了我的问题。谢谢 – Youssef 2012-04-13 20:48:20

回答

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> 

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

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 /类(如果有的话)将会是什么

相关问题