2012-03-22 132 views
1

我有一個具有輔助地址部分的表單。在本節中,您可以填寫街道或郵政信箱地址。我想確保只提交一個地址,所以如果用戶將數據輸入到另一個輸入字段,我想清除其他表單。當數據輸入到另一個輸入時清除輸入

我的下面的代碼不工作,有什麼想法?由於

$('#pobox_number').change(function() { 
if ($(this).val().length > 0) { 
    $('#street_name_postal').val(''); 
} 
+0

你可以提出一個警報,看看函數是否在你輸入pobox_number文本框時被調用嗎? – Asdfg 2012-03-22 03:22:23

+0

嗨,我試過了,警報沒有運行。有什麼建議麼?謝謝 – 2012-03-22 03:49:03

+0

嗨,大家好,感謝所有的幫助,我通過在ID前添加輸入來獲得代碼。奇怪,但它需要這些目標的ID。如果任何人需要點只是回答使用這:) – 2012-03-22 20:22:38

回答

0

答案最終是非常簡單的,不知道爲什麼我需要如此精確地定位元素,但在「#street_name_postal」之前添加了輸入就是了。

$('#pobox_number').change(function() { 
if ($(this).val().length > 0) { 
$('input#street_name_postal').val(''); 
} 
2

假設#pobox_number是文本類型的輸入更改事件僅在模糊解僱,所以你的代碼可能會被工作,但只是沒有你指望它。

你可以嘗試使用的按鍵事件,而不是讓你的代碼看起來像這樣:如果元素的ID是正確的

$('#pobox_number').keypress(function() { 
    if ($(this).val().length > 0) { 
     $('#street_name_postal').val(''); 
    } 
} 
1

您的代碼應該工作。工作=清除其他字段的值。

但是,如果您不想發送輸入(即使它是空的)內容,則應確保這些元素的name屬性爲空,如果沒有設置name屬性,則不發送數據。

1

您的代碼看起來沒問題,除了缺少的右括號change。你應該有:

$('#pobox_number').change(function() { 
    if ($(this).val().length > 0) { 
     $('#street_name_postal').val(''); 
    } 
}); 

這是一個工作jsFiddle sample。也就是說,我建議使用blur來代替,否則用戶可能會在字段之間來回切換,如果值沒有改變,那麼事件將不會被觸發。這是一個example of the blur approach

相關問題