2013-08-13 56 views
5

Tôi có một hộp văn bản và tôi muốn sử dụng dữ liệu trong mỗi lần nhập nội dung nào đó; Thư bằng thư. Điều gì đang xảy ra là khi một giá trị được nhập vào, Javascript đang được thực thi trước khi giá trị thực sự được đưa vào hộp văn bản, có nghĩa là giá trị đó luôn luôn chậm hơn một ký tự phía sau.Javascript - nhận giá trị từ hộp văn bản ở mọi phím bấm

$(document).ready(
     function() { 
      $('#test').keypress(

      function() { 
      var value = document.getElementById('test').value; 
      alert(value); 
      }); 
     }) 

<input id="test" type="text" /> 

Dưới đây là whats xảy ra:

input alert 
    w "" 
    e "w" 
    a "we" 
    l "wea" 
    t "weal" 
    h "wealt" 

Trong khi tôi muốn nó xảy ra tự động; tức là khi tôi nhập "w", tôi muốn cảnh báo chứa "w" ngay sau đó.

Trả lời

17

keypress xảy ra trước khi thay đổi, có. keyup xảy ra sau đó. Nghe thay vào đó.

+0

cảm ơn bạn! perfecto –

5

Bạn nên cố gắng keyup sự kiện, vì keypress xảy ra trước khi biểu tượng đang được đầu vào trong một hộp

4

sử dụng KeyUp

$(document).ready(
    function() { 
     $('#test').keyup(
      function() { 
       var value = document.getElementById('test').value; 
       alert(value); 
      }); 
    }) 
0

Sử dụng các sự kiện keyup thay -:

  $('#test').keyup( 
      function() { 
      var value = document.getElementById('test').value; 
      alert(value); 
      }); 
2

Sử dụng keyup để đọc hợp lệ sau khi đã nhập nội dung nào đó. Dưới đây là làm thế nào để làm điều đó với jQuery:

$(document).ready(function() { 
    $('#test').keyup(function() { 
     alert($(this).val()); 
    }); 
}); 

Demo

0

sử dụng KeyUp thay rằng sẽ làm việc

$(document).ready(
     function() { 
      $('#test').keyup(

      function() { 
      var value = document.getElementById('test').value; 
      alert(value); 
      }); 
     }) 

0

Hãy thử sử dụng 'KeyUp' sự kiện thay vì 'bấm phím'.

Thay đổi:

$(document).ready(
     function() { 
      $('#test').keyup(
      function() { 
      var value = document.getElementById('test').value; 
      alert(value); 
      }); 
     }); 

Làm việc plunk.