2011-05-26 53 views
1

這是從我以前的問題中分離出來的。我有一組通過循環生成的表單字段。使用jQuery刪除不包含任何值的字段

我也有一個鏈接,點擊時調用一個jQuery函數。該鏈接打開一個模態對話框,其中也有一個表單。我想從對話框中提交表單時刪除通過循環創建的不包含任何值的字段。


編輯:

測試代碼後,我意識到,因爲我提交表單的頁面居然被刷新,我使用所有的值。所以,我需要做相反的事情 - 收集所有帶有值的字段,並且在我提交表單之後,我需要將所有帶有值的字段插入到頁面中。現在我需要用下面的代碼幫助:

$("#myLink").click(function(){   

    $("#newForm").dialog({ 
     buttons: { 
      "Submit": function() { 
       $("myForm").submit(); 

       // BELOW is where I need help 
       var fieldWithValue = ""; 

       if($('input[value != ""]').length > 0) { 
        $this = $(this); 
        fieldWithValue += $this.parent(); 
       } 
       $("#vals").html(fieldWithValue);      
      }, 
      "Cancel": function() { 
       $(this).dialog("close"); 
      } 
     } 
    }); 
}); 

foreach ($arrays as $listValue) { 
    echo ' 
    <div> 
     <input type="text" maxlength="100" name="field[]"> 
    </div>'; 
} 

<div id="vals"></div> 
<a href="#" id="myLink">link</a> 

回答

2
if ($.trim($(this).val()) == '') { $(this).parent().remove() } 
+1

+1這會做的伎倆,但我可能會緩存第一:'變量$此= $(本);'因爲它是在'$ .each'裏面。 – 2011-05-26 20:26:48

+0

請參閱我上面的180度編輯... – santa 2011-05-26 21:14:13

1
$(‘input[value!=""]‘).val().length == 0 

$('input:text[value=""]').parent().remove();