2016-12-07 12 views
0

jQuery UIのdatepickerに問題があります。私はこのコードを持っている:なぜ私のjQueryスクリプトは1回だけ実行されますか?

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="http://code.jquery.com/ui/1.12.1/jquery-ui.min.js" integrity="sha256-VazP97ZCwtekAsvgPBSUwPFKdrwD3unUfSGVYrahUqU=" crossorigin="anonymous"></script> 
 
<script> 
 
    jQuery(document).ready(function($) { 
 
    $('#datepickerFrom').datepicker({ 
 
     dateFormat: 'yy-m-d', 
 
     inline: true, 
 
     onSelect: function(dateText, inst) { 
 
     var date = $(this).datepicker('getDate'), 
 
      day = date.getDate(), 
 
      month = date.getMonth() + 1, 
 
      year = date.getFullYear(); 
 

 
     var url = $('#reservation').attr('href'); 
 
     url = url.replace('05&', day + '&'); 
 
     $('#reservation').attr('href', url); 
 

 
     var url2 = $('#reservation').attr('href'); 
 
     url2 = url2.replace('12', month); 
 
     $('#reservation').attr('href', url2); 
 

 
     var url3 = $('#reservation').attr('href'); 
 
     url3 = url3.replace('2016', year); 
 
     $('#reservation').attr('href', url3); 
 
     } 
 
    }); 
 

 
    $('#datepickerTo').datepicker({ 
 
     dateFormat: 'yy-m-d', 
 
     inline: true, 
 
     onSelect: function(dateText, inst) { 
 
     var date = $(this).datepicker('getDate'), 
 
      day = date.getDate(), 
 
      month = date.getMonth() + 1, 
 
      year = date.getFullYear(); 
 

 
     var url4 = $('#reservation').attr('href'); 
 
     url4 = url4.replace('=2016', '=' + year); 
 
     $('#reservation').attr('href', url4); 
 

 
     var url5 = $('#reservation').attr('href'); 
 
     url5 = url5.replace('13', +month); 
 
     $('#reservation').attr('href', url5); 
 

 
     var url6 = $('#reservation').attr('href'); 
 
     url6 = url6.replace('09', day); 
 
     $('#reservation').attr('href', url6); 
 

 
     } 
 
    }); 
 
    }); 
 
</script> 
 
<p>Date arrivée : 
 
    <input type="text" id="datepickerFrom"> 
 
</p> 
 
<p>Date départ : 
 
    <input type="text" id="datepickerTo"> 
 
</p> 
 

 
<a id="reservation" class="et_pb_button et_pb_button_0 et_pb_module et_pb_bg_layout_light" href="https://mywebsite.com/book?shs&chkin=2016-12-05&chkout=2016-13-09&step=1">Réservez</a>

私は日付(datepickerToとdatepickerFrom)をクリックすると、それは私のhrefのリンクを更新しますが、一度だけ。日付を変更すると、スクリプトは実行されません。

+0

これは、静的な値を検索しているからです: 'url = url.replace('05& '、day +' &');'、最初に日付を変更すると!= 5、 'replace'関数は – empiric

答えて

1

初期値は検索して置き換えるため、最初に動作します。指定された年で、「2016」指定された月と12「」とを

var url = $('#reservation').attr('href'); 
url = url.replace('05&', day + '&'); 
$('#reservation').attr('href', url); 
var url2 = $('#reservation').attr('href'); 
url2 = url2.replace('12', month); 
$('#reservation').attr('href', url2); 
var url3 = $('#reservation').attr('href'); 
url3 = url3.replace('2016', year); 
$('#reservation').attr('href', url3); 

それは基本的に置き換える「05」何を与えられた日:あなたのこのコードをチェックしてください。ユーザーが別の日付を選択すると、このコードはこの新しい日付で置き換えるものは何も見つかりません。

+0

私はばかだ、ありがとう! –

+0

Upvote done;) しかし、私はhrefリンクを動的に更新する方法はわかりませんが、アイデアはありますか? このhrefは、最初は "&chkin = 2016-12-05&chkout = 2016-13-09&step = 1"です。 –

+0

hrefを置き換えるのではなく、日付の新しい日、月、年を取得します(両方のフィールドで)、毎回href値を書き換えます。 –

関連する問題