如何在自己的javascript点击事件中禁用按钮?

时间:2013-01-28 08:31:46

标签: jquery events dynamic bind

我有一个附加在表单上的按钮。表单是在应用程序的某个点动态创建的,按钮的附加方式如下:

$('#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,这意味着在代码的这一点上按钮甚至不存在。我可以理解它是动态创建的,也许我需要绑定事件,但它是如何被点击的,甚至可以显示控制台消息?

如何在功能中禁用此按钮?或者甚至不可能?

4 个答案:

答案 0 :(得分:3)

您的html使用的id="#imgupload"似乎不合法。虽然为了好玩,我能够让这个选择器起作用:

 $('#\\#imgupload').prop('disabled',true);

这确实看起来像是一个错误,你的html应该只是id="imgupload"

fiddle

另外如果你使用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中删除#将解决此问题。