我正在尝试使用jQuery(版本1.4+)来确定表单上输入元素的特定类型。我已经看过如何使用jQuery确定元素类型,如这些问题所述:
Get element type with jQuery finding the type of an element using jQuery How to find element type in JQuery
...使用与此类似的脚本:
var btn_submit = $(calendar_box).find('input[name="submit"]');
var elementType = btn_submit.prop('tagName');
这确实有效。但是,我的问题更具体一些。我有一个check_form函数,只有在填写了必填字段时才启用Submit按钮;如果提交按钮是标准表单按钮,则会删除“已禁用”属性,如果按钮是图像,则会切换图像的“已启用”版本。问题是对于任何一种类型的按钮,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'。我想我可以在我的函数逻辑中使用它,但它似乎不太理想,不知何故。
提前致谢。
修改的
有效,Ejay。 attr('type')仍然为锚标记返回null,但它确实区分了图像和按钮类型。我将此标记为已回答!
答案 0 :(得分:1)
这里有:)
您可以使用$(element).attr('arrtibute_name')
访问元素属性。在这种情况下,您可以通过
var btn_submit = $(calendar_box).find('input[name="submit"]');
if(btn_submit.attr('type') == 'image'){
//this is image button
}
else if(btn_submit.attr('type') == 'button'){
//this is a simple button
}
//in case you're expecting <a> tags too
else if(btn_submit.prop('tagName') == 'A'){
//this is an anchor tag
}
您可以阅读有关jQuery .attr() here
的更多信息