0

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

$('#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

4 回答 4

3

您使用的 htmlid="#imgupload"似乎不合法。虽然为了好玩,我能够得到一个选择器来工作:

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

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

小提琴

另外,如果您使用 jQuery,为什么要使用内联 javscript?只需绑定一个事件处理程序(也请参见 fiddle)。

于 2013-01-28T08:55:32.910 回答
2

这是因为您在 HTML 中有一个错误,更好的是,您记下 ID 的方式。# 用于在 CSS 或 jQuery (#+Name) 中引用 ID-Name。在 HTML 中,它只是名称,如下所示:

$('#imgform').append("<center><input type='submit' value='Upload' id='imgupload' onclick='showUploadedItem()'/>");
于 2013-01-28T08:36:02.457 回答
2

你不需要#在id之前给。从代码中删除它

改成这样,

$('#imgform').append("<center><input type='submit' value='Upload' id='imgupload' onclick='showUploadedItem()'/>");
于 2013-01-28T08:36:48.800 回答
1

从您的按钮 ID 中删除 # 将解决该问题。

于 2013-01-28T08:37:09.390 回答