JS實現是一個文字框(值為參數)輸入另一個顯示(查詢結果)

來源:互聯網
上載者:User

JS實現是一個文字框(值為參數)輸入另一個顯示(查詢結果)

JS實現是一個文字框(值為參數)輸入另一個顯示(查詢結果)


最近在項目當中遇到了這麼一個問題:“在一個文字框中輸入編號,然後從資料庫中查詢對應的名稱動態顯示在另一個文字框中。”

當一個文字框失去焦點的時候就動態執行相應的方法,從後台查出資料然後顯示在頁面上。所以這個時候需要做的就是用JS寫一個文字框觸發事件。//W3School:http://www.w3school.com.cn/jquery/event_blur.asp(關於失去焦時間點事件詳解)


<scripttype="text/javascript">        $(document).ready(function(){          $("input").focus(function(){       //獲得焦時間點事件                   $("input").css("background-color","#FFFFCC");          });          $("input").blur(function(){        //失去焦時間點事件                   $("input").css("background-color","#D6D6FF");          });});</script> 


有了這個小Demo之後就開始著手實現自己需要的功能了,Demo中實現的只是樣式的修改,而自己需要傳參數調取Controller(前台使用的是MVC)並將返回值顯示出來。在網上查到的最多的是如下方法(自己沒有調通):


<script type="text/javascript"src="jquery.js"$amp;>amp;$lt;/script><script type="text/javascript">        $('#test1').blur(function(){        var parm = $('#test1').val().trim();        $.post("後台操作URL",{'val':parm},function(){                $('#test2').val(返回資料);        },返回資料類型);});</script>


最初沒有調通是因為自己對JQuery的不理解,通過自己查了查資料發現網上找到的這段其實是我後來寫的那段的簡寫(詳細參考:http://www.w3school.com.cn/jquery/ajax_post.asp)

最後幾經修改成功的實現了自己想要的功能,代碼如下:

 //隨教工號的變化得到相應的教師名稱    $('#EmployeeNo').blur(function () {        var strEmployeeNo = $('#EmployeeNo').val().trim();        $.ajax({            type: "post",          async: true,//表示非同步執行;這裡同步非同步都是沒有問題的,關於同步和非同步自己目前還不是很清楚。            url: "/OnClass/QueryTeacherNameByEmployeeNo", //Controller中的方法名            data: { "strEmployeeNo": strEmployeeNo },     //參數,從前台擷取的教工號            success: function(data) {                $('#TeacherName').val(data);        //顯示教師的名字,data為Json,裡面只有教師名一個屬性故可以直接使用。              //有時候我們需要將json轉化成字串,方法見文尾            },            error: function(err) {                alert("輸入的課程編碼有誤,請重新輸入");            }        });});

最後寫完之後其實是一個很簡單的東西,自己做的時候花了一些時間主要還是對JS這塊不是很熟悉,同時在平時用得也比較少比較生疏,再者網上一些資料並沒有很規範的注釋(大家都得好好寫注釋啊)看起來也需要花時間。


希望大家都能用心分享!

附錄:

簡寫實現:

$('#CourseCode').blur(function() {        var jsonStr = "";        var strCourseCode = $('#CourseCode').val().trim();       $.post("/OnClass/QueryCourseNameByCourseCode", { 'strCourseCode': strCourseCode }, function (data) {            $('#CourseName').val(data);        });});

關於Json和字串的轉換:

字串轉對象(strJSON代表json字串)
var obj = eval(strJSON);
var obj = strJSON.parseJSON();
var obj = JSON.parse(strJSON);
json對象轉字串(obj代表json對象)
var str = obj.toJSONString();
var str = JSON.stringify(obj)
運用時候需要除了eval()以外需要json.js包(切記)


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.