2016-05-31 80 views
1

由於某些原因,這是非功能任何幫助表示讚賞。Jquery .change()

<script> 
$(document).ready(function(){ 
    $('select[name=materialSelect]').change(function(){ 
    alert("Changed"); 
    }); 
}); 
</script> 
<select name="materialSelect" id="materialSelect"> 
      <option value="-1">-----Select Material-----</option> 
      <option value="0">Material</option> 

</select> 
+0

在控制檯中的任何錯誤??? –

+2

將該代碼放入$(function(){}); – ssilas777

+0

JQuery上?也許你4點吧? – NeedHate

回答

0

您的代碼沒有任何問題,要小心,你叫你的

$('select[name=materialSelect]').change(function(){ 
    alert("Changed"); 
}); 

之後,你的HTML被加載。

用於將文檔加載綁定到調用代碼的函數的示例。

0

有jQuery的的變化上可用的功能,你已經用身體負荷,這意味着它結合你的選擇不存在,當你調用該函數,你應該這樣做:

$(document).on('change', '#materialSelect', function() { 
alert('changed'); 
}); 
0

你的代碼只要綁定腳本運行時HTML元素(綁定事件的HTML元素)就存在。

爲了安全起見,總是綁定到一個父元素(例如body),它會將事件委託給子項。

所以,試試這個,

$('body').on('change', 'select[name=materialSelect]', function(){ 
    alert("Changed"); 
}); 

希望它能幫助。

0
<!DOCTYPE html> 
    <html> 
    <head> 
     <meta charset="utf-8"> 
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script> 
    </head> 
    <body> 
     <select name="materialSelect" id="materialSelect"> 
     <option value="">-----Select Material-----</option> 
     <option value="0">Material</option> 
     </select> 
     <script type="text/javascript"> 
     $(document).ready(function(){ 
     $('select[name=materialSelect]').change(function(){ 
      alert("Changed"); 
     }); 
     }); 
     </script> 
    </body> 
    </html> 
+0

如果您聲明腳本在你的DOM中的html之後,你不需要$(document).ready。 – DinoMyte

+0

在某些應用程序中,你必須這樣做,我面臨着同樣的問題 –

+0

不,你永遠不需要這樣做,如果你的html被加載在你的腳本之前 – DinoMyte

0

首先,我會研究jQuery的加載位置。 jQuery需要在任何使用它的腳本之前加載。

錯誤:

<script> 
    $('.something').change(... 
</script> 
<script src=""></script><!-- jquery --> 

正確:

<script src=""></script><!-- jquery --> 
<script> 
    $('.something').change(... 
</script> 

其次,你應該用某種現成功能的文檔。這將確保你的HTML正在申請您的活動(如「的onchange」)

正確日前提供:

<script src=""></script><!-- jquery --> 
<script> 
    $(function() { 
     // DOM is now ready 
     $('.something').change(... 
    }) 
</script>