1

ダイアログボックスから値を返し、メインページに値を入力する次のJqueryがあります。

function AutoCompleteTopayer(pName, addLine, pCity, pState, pZip, pPhone) {
        $(".PayerName").html(pName);
        $("#txtPayerAddress").val(addLine);
        $("#txtPayerCity").val(pCity);
        $("#txtPayerState").val(pState);
        $("#txtPayerZip").val(pZip);
        $("#txtPayerPhone").val(pPhone);
        var csz = pCity + ", " + pState + ", " + pZip;
        $("#txtCStateZip").val(csz);
        $("#SearchPayDlg").dialog("close");
    }

私の見解からのコード:

    @Html.TextBoxFor(model => model.cityStateZip, new { @class = "fauxInput", id = "txtCStateZip" })
    @Html.HiddenFor(model => model.payerCityName, new { id = "txtPayerCity" })
    @Html.HiddenFor(model => model.payerStateCode, new { id = "txtPayerState" })
    @Html.HiddenFor(model => model.payerPostalZoneOrZipCode, new { id = "txtPayerZip" })

これにより、次の出力が得られます。
出力1



TextBoxForをDisplayForに置き換えると...値が表示されません。私はここで私の問題をどうにかして解決する1つの記事を見つけたので、私はこのコードを思いついた:

<span class="txtPayerName">
     @Html.DisplayFor(model => model.payerName, new { @class = "fauxInput" })
 </span>

そしてJQueryメソッドで:

$(".txtPayerName").html(pName);

、しかしそれも機能しません。解決策はありますか?


後で編集:申し訳ありませんが、それはすべてタイプミスに関するものであることがわかりました...最後のものは実際に機能します..私は編集して、他の人がそれから利益を得ることができるようにここにそれを置くつもりです。

上記のコードは、displayForのクラスが機能しないという唯一のコメントで機能します(Darin Dimitrovに感謝)。したがって、これは機能するはずです。

 <span class="txtPayerName fauxInput">
         @Html.DisplayFor(model => model.payerName)
     </span> 
4

1 に答える 1

1

ヘルパーの2番目の引数は、DisplayForあなたが思っていることをまったく実行しません(CSSクラスを適用します)。これにより、追加のViewDataを表示テンプレートに渡すことができます。

したがって、CSSを含む要素に適用できます

<span class="txtPayerName fauxInput">
    @Html.DisplayFor(model => model.payerName)
</span>

次に、セレクターを調整します。

$('.fauxInput').html(pName);

セレクターで使用したため、コードも機能しますが、このアプローチを使用した場合は$(".txtPayerName")何も存在しないことを指摘することが重要です。fauxInput

于 2012-06-28T08:36:53.903 に答える