2013-04-26 35 views
0

我試圖使用jQuery(版本1.4+)來確定表單上輸入元素的特定類型。我已經看到了如何確定使用jQuery的元素類型,在這些問題描述:使用jQuery查找HTML表單元素的子類型

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函數,只有在填寫必填字段時才啓用提交按鈕;如果提交按鈕是一個標準的表單按鈕,它將刪除「已禁用」屬性,並且如果該按鈕是圖像,則它會交換圖像的「已啓用」版本。問題是,對於任何一種類型的按鈕,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> 

當我使用鏈接方法時,我得到'null'元素類型值。我想我可以在我的函數邏輯中使用它,但似乎不太理想。

在此先感謝。

編輯

這樣的作品,EJAY。 attr('type')仍然爲錨標籤返回null,但它確實可以區分圖像和按鈕類型。我將此標記爲已回答!

+0

您可以訪問元素的屬性,比如'btn_submit.attr(「類型」)'。如果您也包含HTML,我可以發佈解決方案 – Ejaz 2013-04-26 14:52:31

+0

這很有效,Ejay。 attr('type')仍然爲錨標籤返回null,但它確實可以區分圖像和按鈕類型。我將此標記爲已回答! – user1172619 2013-04-26 15:25:15

+0

其實,Ejay,我想你必須把它作爲答案而不是評論發佈,除非你想要我自己發佈答案來竊取你的信用!再次感謝。 – user1172619 2013-04-26 15:28:45

回答

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