簡體   English   中英

jQuery自動完成后獲取ID的值

[英]Get Value of ID after JQuery Autocomplete

我有兩個利用自動完成功能的TextBoxFor字段。 在用選定的自動完成值或手動值填充它們之后,其他JavaScript函數在引用ID.val()時將為空白。 為了獲得這些值需要添加/更改什么? 提前致謝!

編輯:在發送到View之前在Controller中預填充字段,該函數調用可以檢索正確的預填充值。 似乎只有在用戶嘗試編輯字段和/或使用自動完成功能時,字段值才被識別。

EDIT2:我嘗試將函數綁定到document.ready,然后單擊,然后單擊document.on,但沒有人在文本框ID中找到值。

剃刀:

<div class="row">
    <div class="col-lg-12">
        @Html.LabelFor(m => m.AddedWorkmate, "Workmate To Add", new { @class = "control-label" })
        @Html.TextBoxFor(m => m.AddedWorkmate, new { data_autocomplete_url = Url.Action("GetWorkmates"), @class = "form-control" })
    </div>
</div>
<div class="row">
    <div class="col-lg-4">
        <button type="button" id="bUser" name="bUserButton" class="btn btn-primary btn-sm">Add Workmate Recipient</button>
    </div>
</div>

腳本:

function ExampleFunction() {
    var $addedW = $("#AddedWorkmate");//This should work, but apparently doesn't
    var textTest = $addedW.text(),// = ""
        valueTest = $addedW.val();// = ""
    //Stuff to do
}

我認為如果您輸入自動完成功能並且仍然有焦點,那么輸入將無法檢測到更改。 您是否嘗試過轉義文本框並事后調用ExampleFunction

您也可以在此文本框的input事件上綁定ExampleFunction input是在用戶鍵入或粘貼時觸發的,因此它也應與自動完成功能一起使用。

(function(){
      $('#AddedWorkmate').on("input", ExampleFunction);
   }
)();

function ExampleFunction() {
    var text = $(this).val();
}

編輯:

請嘗試以下步驟:

  1. 放棄自動補全。 m => m.AddedWorkmate文本框中輸入或粘貼一些文本,例如test
  2. 打開控制台。
  3. 鍵入並調用$("#AddedWorkmate).val()
  4. 您應該得到"test"的響應。
  5. 如果您有此內容-DOM中沒有錯誤。
  6. 然后嘗試像這樣將事件綁定到input
(function(){
      $('#AddedWorkmate').on("input", function(){console.log('test')});
   }
)();
  1. 如果這在輸入時登錄到控制台-是的,您具有適當的綁定。
  2. 然后專注於獲取價值。 此時,它必須位於$(this).val() ,我看不到任何其他可能性。 如果它不是未定義的並且值仍然為空,那么您在問題范圍之外做錯了什么。
  3. 如果成功獲取該值,則將其與自動完成功能結合在一起-它應該可以工作。

將您想要的ID添加到文本框中,以便您可以從jQuery引用它。

@Html.TextBoxFor(m => m.AddedWorkmate, new { data_autocomplete_url = Url.Action("GetWorkmates"), @class = "form-control", id="AddedWorkmate" })

所有這些背后都有一個草率的錯誤:該字段在網頁的前面被聲明為@HiddenFor。 看到輸入在源代碼上“隱藏”后,該行被刪除,一切正常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM