2013-09-30 48 views
0

我正在創建一個表格,我希望只有當多個輸入非空時才能使用「添加行」鏈接。我已經適應了這個(Disable Submit button until Input fields filled in)但是在我的情況下,即使它是空的,我的datepicker(即是jQuery UI datepicker)輸入也具有值。我在某處讀取datepicker自動發佈一個值,而不管是否指定了一個值。這打破了我的功能的目的。Datepicker儘管顯示爲空,但仍具有值

這裏是我的標記:

<tbody> 
    <tr> 
     <td class="date"><input class="datepicker" name="date-01" value="" /></td> 
     <td class="hours"><input class="hours" name="hours-01" value="" /></td> 
     <td class="rate"><input class="rate" name="rate-01" value="60.00" /></td> 
     <td class="date-total"><input class="date-total" name="date-total-01" value="" /></td> 
     <td class="add-delete-row"> 
      <a href="#" class="delete-row" title="Delete row">Delete</a> 
      <a href="#" class="add-row" title="Add a row">Add Row</a> 
     </td> 
    </tr> 
</tbody> 

...和相關的JS:

// 1. Datepicker options/format: 
$('.datepicker').datepicker({ 
    changeMonth: true, 
    changeYear: true, 
    dateFormat: "yy-mm-dd", 
}); // END Datepicker 

    checkRow(); 
    $('.hours-table').on('blur', 'input', checkRow); // same results using either keyup or change; apparently empty datepicker input has a value 
    }); 

function checkRow() { 
    //if ( $('input.datepicker').not(':empty') && 
    if ( $('input.datepicker').val().length > 0 && 
      $('input.hours').val().length > 0 && 
      $('input.rate').val().length > 0 && 
      $('input.date-total').val().length > 0 ) { 
     $('.add-row').show(); 
     alert ($('input.datepicker').val()); 
    } 
    else { 
     $('.add-row').hide(); 
    } 
} 

我成立了一個的jsfiddle(的jsfiddle http://jsfiddle.net/sheckyvansheck/4HPfe/27/),但不能讓日期選擇器工作,其中當然使它毫無價值。

任何建議將不勝感激。

乾杯,svs

+1

它似乎是工作http://jsfiddle.net/arunpjohny/m9wyd/1/ –

+0

奇思妙想。確認代碼片段與我在本地服務器上運行的代碼片段相同,但仍然失敗。百思不得其解。 – shecky

+0

而不是清空值,你可能想嘗試禁用它:'$('input.datepicker')。prop('disabled',true);'。這會阻止它在提交表單時發送值。 – xiankai

回答

0

DOH!在我一直在使用本地服務器的版本中,在「小時」表格之前有另一個日期選擇器輸入。 ERGO,我checkRow功能所需的下列選擇:

function checkRow() { 
if ($('.hours-table input.datepicker').val().length > 0 && ... 
相關問題