1. ホーム
  2. ジャバスクリプト

[解決済み】jQueryを使用して入力テキストに値を設定する方法

2022-03-25 21:26:47

質問

このような入力テキストがあります。

<div class="editor-label">
    @Html.LabelFor(model => model.EmployeeId, "Employee Number")
</div>

<div class="editor-field textBoxEmployeeNumber">
    @Html.EditorFor(model => model.EmployeeId) 
    @Html.ValidationMessageFor(model => model.EmployeeId)
</div>

次のようなhtmlが生成されます。

<div class="editor-label">
  <label for="EmployeeId">Employee Number</label>
</div>

<div class="editor-field textBoxEmployeeNumber">
  <input class="text-box single-line" data-val="true" data-val-number="The field EmployeeId must be a number." data-val-required="The EmployeeId field is required." id="EmployeeId" name="EmployeeId" type="text" value="" />

  <span class="field-validation-valid" data-valmsg-for="EmployeeId" data-valmsg-replace="true"></span>
</div>

この入力テキストにjqueryで値を設定したいので、次のようにしました。

<script type="text/javascript" language="javascript">
    $(function() {
        $('.textBoxEmployeeNumber').val("fgg");
    });
</script> 

しかし、うまくいきません...私の構文に何か間違いがあるのでしょうか?

どうすればいいですか?

セレクタは、テキストボックスの周囲の <div class='textBoxEmployeeNumber'> 中の入力ではなく

// Access the input inside the div with this selector:
$(function () {
  $('.textBoxEmployeeNumber input').val("fgg");
});

出力されたHTMLを見てから更新

ASP.NETのコードが確実にHTMLを出力している場合 <input> をid属性で指定します。 id='EmployeeId' を使えば、よりシンプルになります。

$(function () {
  $('#EmployeeId').val("fgg");
});

この場合、ブラウザのエラーコンソールで、他のスクリプトのエラーが原因で失敗していないことを確認する必要があります。 上記の最初の例では は、このデモでは正しく動作します。