2012-09-11 42 views
1

我希望設置壓光機輸入字段時,下拉列表具有特定的選定值。 我面對的問題是事件發生,但腳本不會執行,直到點擊發生多次,我嘗試clickfocus但結果相同!事件發生,但腳本不執行,直到事件發生兩次

這裏是我的代碼

<select name="selectKey" id="selectKey"> 
    <option value="1" >mail no</option> 
    <option value="2" > mail type</option> 
    <option value="3" selected="selected"> mail date</option> 
    <option value="4" >title</option> 
</select> 

<input type="text" name="srchTxt" id="srchTxt" value=""> 

這裏是JS

$(document).ready(function() { 



$('input[name=srchTxt]').bind('focus', function(event) { 
    // event.stopPropagation(); 

    if ($("select[name='selectKey']").children(':selected').val() == 3) { 
     console.log('ysssssssssssssss'); 
     $('input[name=srchTxt]').datepicker({ 
      // showWeek: true, 
      firstDay: 1, 
      dateFormat: 'dd/mm/yy' 
     }) 
    } 
    }); 
});​ 

這裏有一個演示http://jsfiddle.net/VAvwG/

回答

2

只需添加.datepicker('show')到底

$(document).ready(function() { 
    $('input[name=srchTxt]').bind('focus', function(event) { 
     if ($("select[name='selectKey']").val() == 3) { 
      $('input[name=srchTxt]').datepicker({ 
       firstDay: 1, 
       dateFormat: 'dd/mm/yy' 
      }).datepicker('show') 
     } 
    }); 
}); 

http://jsfiddle.net/VAvwG/3/

1

這是因爲您第一次專注於輸入datepicker未被添加到它。爲什麼不使用更改事件?

$(document).ready(function() { 
    $('#selectKey').on('change', function(event) { 
     if (this.value == 3) { 
      $('#srchTxt').datepicker({ 
       firstDay: 1, 
       dateFormat: 'dd/mm/yy' 
      }) 
     } 
    }).change() 
}); 

http://jsfiddle.net/VAvwG/5/

+0

我有這樣的大事,也是我需要日期選擇器添加到文本字段時,選擇值是日期,而無需重新選擇或製作在選擇框中的改變,我需要提交後,這實際上形式日期選擇器未分配給文本字段,即使在選擇框中選擇了所選值。 – palAlaa

+0

@PalAla是的,請在更改事件處理程序結束時查看change()方法,這會觸發更改事件,並且不必手動選擇值。 – undefined

+0

datepicker在所有選定值的輸入中設置,我試圖在比較中使用$(this),但也不起作用! – palAlaa