我正在尝试使用 jQuery(版本 1.4+)来确定表单上输入元素的特定类型。我已经了解了如何使用 jQuery 确定元素类型,如这些问题中所述:
使用 jQuery 获取元素类型 使用 jQuery 查找元素的 类型 如何在 JQuery 中查找元素类型
...使用与此类似的脚本:
var btn_submit = $(calendar_box).find('input[name="submit"]');
var elementType = btn_submit.prop('tagName');
这确实有效。但是,我的问题更具体一些。我有一个 check_form 功能,仅在填写必填字段时才启用提交按钮;如果提交按钮是标准表单按钮,它会删除“禁用”属性,如果按钮是图像,它会换入图像的“启用”版本。问题是对于任何一种类型的按钮,elementType 总是以 INPUT 形式返回。我需要能够区分这两种输入,以便我可以针对启用按钮采取适当的措施。
有没有办法使用 jQuery 来查找元素的子类型?在我看来,无论我是在检查文本框、按钮还是图像,elementType 都将是 INPUT。
编辑
很抱歉遗漏了 HTML。
对于 HTML 按钮的情况,它看起来像:
<input type="button" id="submit" name="submit" value="COMPUTE CALENDAR" onkeypress="return handle_key_press_box(event);" onclick="submit_form();" disabled="disabled" />
我还使用了这样的图像:
<input type="image" id="submit" name="submit" onkeypress="return handle_key_press_box(event);" onclick="submit_form();" disabled="disabled" />
……像这样……
<a href="javascript:submit_form();"><img src="../images/favicon.ico" onkeypress="return handle_key_press_box(event);" /></a>
当我使用链接方法时,我得到 elementType 值的“null”。我想我可以在我的函数逻辑中使用它,但不知何故,它似乎不是最优的。
提前致谢。
编辑
这行得通,伊杰。attr('type') 仍然为锚标记返回 null,但它确实正确区分了图像和按钮类型。我将此标记为已回答!