2012-12-05 85 views
1

當我單擊刪除按鈕時,如何獲得jquery中art-no的值?單擊按鈕時獲取表單中不同類的屬性

<form id="artForm" method="post"> 
<input type="hidden" name="sequence" value="27" art-no="27"> 
<input type="button" value="Delete" class="delete" id="submitbutton"> 
</form> 

在使用jQuery這樣的:

$(".delete").click(function() { 
alert (".sequence").attr("art-no"); 
return false; 
}); 

這實際上應該有工作,但我一直在警告框越來越.sequence。是因爲它隱藏了嗎?

+0

感謝大家的指點,我錯過了類=「序列」。我添加了一個類,現在它工作正常。 – Norman

+0

諾曼,如果你在下面找到你的答案,請接受它,以便未來的訪問者也可以學習解決方案。 –

回答

4

首先,這是工作的解決方案:

$(".delete").click(function() { 
    alert ($("[name='sequence']").attr("art-no")); 
    return false; 
}); 

而且我有一些建議;

  • 那隱藏字段沒有類的名字,所以你不能使用.sequence的選擇,你必須使用[name='sequence']或者你可以給它sequence類,並用它代替.sequence
  • 彌補自己的屬性您可以使用data屬性和.data(),使用它像data-art-no="27"和訪問它像.data('art-no')
  • 最後,使用event.preventDefault() insted的的return false

這是您的修改後的代碼:

+0

我同意使用'data-'屬性更好,但請注意'.data('art-no')'會嘗試類型轉換,而'.attr('data-art-no')'會返回原始字符串值。 – nnnnnn

+0

謝謝。我添加了class =「sequence」,現在它效果很好。 – Norman

3

在您輸入添加class="sequence"現在有隻是一個名字,然後替換

alert (".sequence").attr("art-no"); 

alert ($(".sequence").attr("art-no")); 

或更好

alert ($(this).prev(".sequence").attr("art-no")); 

,以確保您有如果您不止一次使用sequence類(這是usua lly使用類而不是id的原因)。

如果你不想添加一個類或ID,選擇將input[name=sequence]

alert ($("input[name=sequence]").attr("art-no")); 
+0

謝謝。我添加了class =「sequence」,現在它效果很好。 – Norman

相關問題