0

Jqueryを使用してテキストボックスを非表示にし、ユーザーがボタンをクリックしたときに表示します

隠れる:

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

公演:

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

すべてが正常に動作します。しかし、グーグルクロームでは、テキストボックスはその価値を失っています。ユーザーがテキストを入力した場合は、テキストを非表示にして再度表示すると、テキストボックスは空になります。

これはグーグルクロームでのみ起こっています。FirefoxとExplorerでは正常に動作します

それについて何か考えはありますか?

ありがとう

編集:私が言及するのを忘れたことがあります私はテキストボックス自体ではなくテキストボックスを含む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>

EDIT2:テキストがそこにあることに気づきましたが、何かの後ろに隠れています。テキストボックス内でCtrlキーを押しながらAキーを押してから、メモ帳にコピーして貼り付けると、次のように表示されます。

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 に答える