这是javascript中的工作示例
在这里我把它和(this.value)
无法正常工作
$(document).ready(function() {
$('#submit').bind("click",function()
{
var imgVal = $('#file').val();
var imgName = $('#image_n').val();
var imgDes = $('#image_description').val();
var all_select = document.getElementsByTagName("select");
for (i = 0; i < all_select.length; i++) {
all_select[i].onchange = function () {
alert(this.value);
}
}
知道问题是什么或如何解决? BTW(这个)看起来没有颜色,你可以在这里看到
答案 0 :(得分:1)
this
的值在闭包内发生变化。
$(document).ready(function() {
$('#submit').bind("click",function()
{
var submitButton = $(this); // <-- The call here refers to the #submit click
var imgVal = $('#file').val();
var imgName = $('#image_n').val();
var imgDes = $('#image_description').val();
var all_select = document.getElementsByTagName("select");
for (i = 0; i < all_select.length; i++) {
all_select[i].onchange = function () {
var selectElement = $(this); // <-- The call here refers to the select change
alert(submitButton.val()); // <-- What do you mean to alert?
}
}
}
}
答案 1 :(得分:1)
在您的代码中,您将onchange
事件处理程序绑定在“bind submit”处理程序中,因此在该提交事件触发之前不会添加它。我建议将它移到其他地方之外:
$(document).ready(function () {
$('#submit').on("click", function () {
var imgVal = $('#file').val();
var imgName = $('#image_n').val();
var imgDes = $('#image_description').val();
});
$("select").on('change', function () {
alert(this.value);
});
});
注意:如果由于某种原因你喜欢你的语法,你仍然可以这样使用:
$(document).ready(function () {
$('#submit').on("click", function () {
var imgVal = $('#file').val();
var imgName = $('#image_n').val();
var imgDes = $('#image_description').val();
});
var all_select = document.getElementsByTagName("select");
for (i = 0; i < all_select.length; i++) {
all_select[i].onchange = function () {
alert(this.value);
};
}
});