前端實現輸入框input輸入時,呼叫後台查詢。

2021-09-20 11:51:52 字數 1514 閱讀 5186

這幾天做了乙個前端html頁面,基於bootstrap框架開發,裡面有個需求就是在輸入框中輸入字母或者文字時,下拉框自動重新整理模糊查詢出的資訊。最初我的想法是監控鍵盤上的按鍵輸入,每次輸入乙個字母後,傳送非同步請求至服務端進行資料查詢。但是後來發現,這種方式做出來會有乙個問題,就是這個監控是全域性的,也就是頁面重新整理後,只要你按鍵盤,就會呼叫非同步請求傳送資料,這樣跟我的設計思路是有出入的。

然後我查了很多資料,發現有一種方式可以監控某個輸入框體中的變化,只要框體內容有變化,就會觸發函式。具體實現如下。

首先先寫好前端html,前端開發時先引入jquery和bootstrap相關元件:

保單號產品**

發票抬頭

納稅人識別號

投保渠道

發票型別

備註 確定×

電子發票資訊

電子發票基本資訊

引數引數內容

保單號 產品**

投保渠道

發票型別

納稅人識別號

發票抬頭

備註關閉

我需要在焦點鎖定投保渠道的輸入框時彈出下拉元件(bootstrap中有案例可以直接使用),在輸入時像後台傳送非同步請求,獲取想要的資料資訊,具體js的實現方法如下:

//監控渠道資訊輸入狀態,根據渠道開頭字母模糊查詢渠道資訊並載入下拉框。

$("#channeltext").bind('input propertychange',function());```

jquery中的bind(type,[data],fn)方法,為每個匹配元素的特定事件繫結事件處理函式。type為```input propertychange```就是譯為當input標籤中的屬性發生改變時觸發函式fn,觸發後先執行刪除選單中的內容,再更新選單中的內容。兩個方法具體如下:

function delectchannelmenu()`

* 傳送請求獲取渠道

*/function getpagechannelmenu(currentpage,channelcode),

async :false,

success:function(msg)

});}```

function loadchannelmenu(obj,pagecount)

var htmlobj="";

for(var i=1;i<=pagecount;i++)

}$('#next').parent().before(htmlobj);

$('a').click(function()

});$("ul.dropdown-menu").on("click", "[data-stoppropagation]", function(e) );}`

這樣就可以實現在輸入框中輸入的同時對資料進行模糊查詢。

input 輸入框限制

只能輸入數字和乙個小數點 function clearnonum obj g,只保留第乙個.清除多餘的 obj.value obj.value.replace replace g,replace obj.value obj.value.replace d d 1 2.3 只能輸入6個小數 親測有用!...

input輸入框輸入金額校驗

輸入框 js校驗只能輸入帶兩位小數的金額 price on input propertychange function g,保證.只出現一次,而不能出現兩次以上 this.value this.value.replace replace g,replace 只能輸入兩位小數 this.value t...

限制 input 輸入框只能輸入數字

1 onkeyup value value.replace d g,使用 onkeyup 事件,有 bug 那就是在中文輸入法狀態下,輸入漢字之後直接回車,會直接輸入字母 2 onchange value value.replace d g,使用 onchange 事件,在輸入內容後,只有 inpu...