我有一个附加在表单上的按钮。表单是在应用程序的某个点动态创建的,按钮的附加方式如下:
$('#imgform').append("<center><input type='submit' value='Upload' id='#imgupload' onclick='showUploadedItem()'/>");
这是我showUploadedItem()
的代码:
function showUploadedItem () {
$('#upload_process').show();
// a bunch of other things to do
$('#imgupload').prop('disabled',true);
console.log("the submit button ID is: " + $('#imgupload').attr('id'));
}
但是console.log消息说按钮ID是undefined
,这意味着在代码的这一点上按钮甚至不存在。我可以理解它是动态创建的,也许我需要绑定事件,但它是如何被点击的,甚至可以显示控制台消息?
如何在功能中禁用此按钮?或者甚至不可能?
答案 0 :(得分:3)
您的html使用的id="#imgupload"
似乎不合法。虽然为了好玩,我能够让这个选择器起作用:
$('#\\#imgupload').prop('disabled',true);
这确实看起来像是一个错误,你的html应该只是id="imgupload"
另外如果你使用jQuery为什么要使用内联javscript?只需绑定一个事件处理程序(请参阅小提琴)。
答案 1 :(得分:2)
这是因为你在HTML中存在错误,更好的是,你记下ID的方式。 #用于引用CSS或jQuery(#+ Name)中的ID-Name。在HTML中,它只是名称,如下所示:
$('#imgform').append("<center><input type='submit' value='Upload' id='imgupload' onclick='showUploadedItem()'/>");
答案 2 :(得分:2)
您不需要在ID之前提供#
。从代码
像这样改变,
$('#imgform').append("<center><input type='submit' value='Upload' id='imgupload' onclick='showUploadedItem()'/>");
答案 3 :(得分:1)
从按钮ID中删除#将解决此问题。