无法将输入值分配给JQuery中的变量 - var newserial = $(“#myserial”)。val();

时间:2014-10-01 06:08:45

标签: javascript jquery

Model #     : <input type="text" name="model" id="newmodel" value="" >
Serial #    : <input type="text" name="fserial" value="" class="serialClass" id="myserial">

in script I have: enter code here

<script>
       //Here I can't get the value of serial# with the id="myserial"
       var newserial = $("#myserial").val();
    
    
    	$(document).ready(function(){
    		$('#myserial').change(function(){
            //this is a test alert, (OUTPUT = "seial number: undefined variable"), which means that 
    		alert("serial number: "+ newserial);
    			
               $.ajax({
    				type: 'GET',
    				url: 'toshGet.php',
                    //upon success, pass newserial
    				data: {keyword: newserial},
    				success: function(msg){
    					$('#txtHint').html(msg);
    				}
    			});//ajax()
    		});//change()
    	});//document.ready()   
    </script>

我知道这很奇怪,但无法将文本输入的值赋给变量“newserial”。这是迄今为止的一段代码:

1 个答案:

答案 0 :(得分:-2)

在你的情况下,问题是当你在DOM中没有正确呈现时,你将一个id为'myserial'的元素赋值给它。

不要在var newserial = $("#myserial").val();之外指定document.ready(),而是尝试:

var newserial;

$(document).ready(function(){
  newserial = $("#myserial").val();
  ....
});

(如果您想要更新'#myserial'的话)

在更改事件处理程序本身内部使用var newserial = $("#myserial").val();var newserial = $(this).val();

直接分配值而不在ajax调用中获取任何额外变量,如下所示:

data: { keyword: $("#myserial").val() }, //or $(this).val()

旁注: - 您的alert("serial number: "+model);绝对错误,因为您的代码中没有名称模型的变量。