2012-05-17 77 views
0

我想獲得一個按鈕(輸入字段或按鈕字段)值每次提交表單。我認爲我有一些邏輯問題,但因爲第二個不起作用。如果這但不是這樣,那麼如果這樣,但不是這樣...邏輯

這是對的jsfiddle http://jsfiddle.net/uqj88/23/

這是專門,這不是正常的一塊。如果在提交類型時找不到輸入,它甚至不會查找按鈕元素。

$('form').submit(function() { 
     if ($(this).children("input[type='submit']") != "") { 
      submitButton = $(this).children("input[type='submit']"); 
      if (submitButton.attr("value") != ""){ 
        linkText = submitButton.attr("value") + " - Button"; 
      } 
      else if ((submitButton.attr("value") === "") && (submitButton.prop("id") != "")) { 
        linkText = submitButton.prop("id") + " - Button"; 
      } 
      else if ((submitButton.attr("value") === "") && (submitButton.prop("class") != "")) { 
        linkText = submitButton.prop("class") + " - Button"; 
      } 
      else { 
        linkText = "Form Submitted - Button"; 
      } 
     } 
     else if ($(this).children("button") != "") { 
      submitButton = $(this).children("button"); 
      linkText = submitButton.text() + " - Button"; 
     } 
     window.alert(linkText); 
    }); 
+1

Oy;重構,然後搞清楚。 –

+1

'$(this).children(「button」)'永遠不會等於'「」',它總是一個對象,即使它沒有找到元素。你的第一條if語句也是如此。 –

回答

1

這條線:

$(this).children("input[type='submit']") != "" 

應該是:

$(this).children("input[type='submit']").length 

jQuery的對象總是對象,無論他們是否不包含元素。一個對象永遠不會等於""

重複相同的更改爲您的其他如果說明。

+0

啊,我明白了。如果沒有找到元素,它只是不返回任何東西? – zen

+0

它返回一個空的jQuery對象,但它仍然是一個對象。它的長度屬性爲0,這是javascript中的一個虛假值。 –

+0

好的交易。謝謝一堆! – zen

相關問題