2

私はjavascipt/jqueryを初めて使用しますが、「onchange」を送信するselectフォームでフォームの送信を確認する方法を見つけることができませんでした。

ユーザーが新しい時間を選択すると、「時間を変更するとカートが空になります。続行しますか?」というアラートが表示されます。

その後、ユーザーは変更を「キャンセル」するか、確認するかを選択できます。

    <form id="hour_select" action="" method="POST" name="hour_form">
        {% csrf_token %}
        <select name="hour" onchange='hour_form.submit()'>
            <option {{selected1900}} value="1900">7:00 PM</option>
            <option {{selected2000}} value="2000">8:00 PM</option>
            <option {{selected2100}} value="2100">9:00 PM</option>
            <option {{selected2200}} value="2200">10:00 PM</option>
            <option {{selected2300}} value="2300">11:00 PM</option>
            <option {{selected2400}} value="2400">12:00 AM</option>
            <option {{selected100}} value="100">1:00 AM</option>
            <option {{selected200}} value="200">2:00 AM</option>
        </select>

        <input type="hidden" name="submit=" value="hour_change"/>

    </form>
4

3 に答える 3

2

属性を使用する代わりに、onchangejQueryonメソッドを使用できます。

$(document).ready(function(){
  $('select[name=hour]').on('change', function() {
     if (confirm("Changing the time will ....")) {
         $('#hour_select').submit()   
     } else {
         $('option:first', this).prop('selected', true)
     }
  })
})

また、コードをドキュメントレディハンドラー内に配置する必要があることにも注意してください。

于 2012-09-17T20:39:35.800 に答える
2

ロード時にイベントをバインドするように、コードを次のように配置します。

 $(document).ready(function(){
     $('select[name=hour]').change(function(){
         if(confirm('Changing the time will empty your cart, do you wish to continue?')){
             $('#hour_select').submit();
         }
     });
 });
于 2012-09-17T20:43:43.850 に答える
-1
$('select[name=hour]').on('change', function(){
    var conf = confirm('Changing the time will empty your cart, do you wish to continue?');
    if(conf == true){
        hour_form.submit();
    }else{
        //do nothing, right?
    }
});
于 2012-09-17T20:39:24.180 に答える