2017-09-16 62 views
0

我想使用jQuery檢索輸入值。使用jQuery檢索輸入值

這裏的HTML:

<input type="text" name="a" id="a" /> 
<input type="button" name="b" id="b" value="Click here"/> 

這裏是jQuery的:

$(document).ready(function() { 

    var normal=$('#a').val(); 
    $('#b').on("click", function() { 
      alert(normal); 
    }); 

}); 

由於某些原因,alert(normal);不工作而alert($('#a').val());一樣。爲什麼?是不是normal$('#a').val();保持相同的值?

如果你想要的jsfiddle:http://jsfiddle.net/L2uX4/20/

感謝

+0

行,因爲它不是動態....它不會重新綁定,你得到的價值在那個時間點是你所擁有的,直到你再次覆蓋變量。 – epascarello

回答

1

你分配在document.ready()normal,而不是重新分配,當你點擊,所以正常將是你給輸入字段的任何值時,該頁面負載。

0

如果聲明var normal點擊功能處理器之外,那麼初始值將是空的,因爲在文本框中沒有值,一旦DOM準備試試這個代碼

$(document).ready(function() { 


     $('#b').on("click", function() { 
     var normal=$('#a').val(); 
     alert(normal); 
     }); 

    }); 
2

。但是,如果您在click事件處理程序中聲明它,那麼只要在文本框中鍵入內容並單擊該按鈕,就會分配該值。 下面的代碼對我的作品

$(document).ready(function() { 
 

 
    
 
    $('#b').on("click", function() { 
 
      var normal= $('#a').val(); 
 
     alert(normal); 
 
     // same as alert($('#a').val()); 
 
    }); 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" name="a" id="a" /> 
 
<input type="button" name="b" id="b" value="Click here"/>

0

是的,你說得對,

提供的文本框id= a對負載的一些文字。

我的意思是沿着

<input type="text" name="a" id="a" value= "foo"/> 

小提琴線的東西:http://jsfiddle.net/Jayas/vhjm8v31/2/

現在,如果你打Clickhere按鈕,它會顯示foo

在你的情況

  1. 當你的a值分配給normal文本框爲空。
  2. 您沒有任何處理程序或事件掛鉤重置/設置變量normal上的東西被鍵入或輸入的東西后。我的意思是沿着具有沿

    $(document).ready(function(){ 
    $('#a').bind('input propertychange', function() { 
         normal = $('#a').val(); 
        } 
    }) 
    

小提琴http://jsfiddle.net/Jayas/vhjm8v31/4/

TL的線存儲在input change值線的東西:博士 - 文本到宣佈重新綁定變量不會「自動」發生

所以現在當你點擊按鈕af ter重新分配normal您將看到鍵入的值。

或者你也可以捕捉的正常的單擊事件的值作爲你已經擁有它,沿

$('#b').on("click", function() { 
     var normal = $('#a').val(); 
     alert(normal); 
    });