Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery确认表单提交_Javascript_Jquery - Fatal编程技术网

Javascript Jquery确认表单提交

Javascript Jquery确认表单提交,javascript,jquery,Javascript,Jquery,我不熟悉javascipt/jquery,我找不到一种方法用一个选择表单确认表单提交,该表单在更改时提交 当用户选择一个新的时间时,我希望出现一个警告,提示更改时间将清空您的购物车,是否继续 然后,用户可以选择取消更改或确认 <form id="hour_select" action="" method="POST" name="hour_form"> {% csrf_token %} <select name="hour" onchan

我不熟悉javascipt/jquery,我找不到一种方法用一个选择表单确认表单提交,该表单在更改时提交

当用户选择一个新的时间时,我希望出现一个警告,提示更改时间将清空您的购物车,是否继续

然后,用户可以选择取消更改或确认

    <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>
您可以在方法上使用jQuery,而不是使用onchange属性:


还要注意的是,您应该将代码放在document ready handler中。

将代码放在这样的位置,以便在加载时绑定事件:

 $(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();
         }
     });
 });

如果要调用表单的提交处理程序,请不要调用任何submit。重命名“提交”按钮或删除缺少的名称。请在此处选择$hour。并非所有浏览器都允许您访问form@mplungjan你说得对,netscape navigator 4不会。我担心netscape navigator 4吗?这是一个非常糟糕的论据,而且它是很多浏览器都不需要的。只是因为你不想麻烦再输入几个字符来兼容。它被称为防御性编码。想做就做它不会造成伤害,并且可以节省大量调试时间。我认为这是一种更好的方法,因为它使用jQuery的.change事件,这与.on'change',..相同,但更干净的代码方式…假设我将时间从晚上7点改为晚上9点。即使我取消更改,选择按钮仍显示晚上9点。是否有办法更改此值?每次更改时将值保存到隐藏字段中。然后,在确认。。。。放置一个else子句,然后在该子句上检查该值是否与以前设置的值不同。。。如果是的话,把它改回原来的值。假设我把时间从晚上7点改到晚上9点。即使我取消更改,选择按钮仍显示晚上9点。有办法改变吗?@anc1revv对不起,我不明白你的意思,当你取消公司并更改select元素的值时,你会看到以前的值吗?@mplungjan你的代码中有一个错误,是的,我想他想在取消时选择第一个选项。现在已经很晚了。有趣的道具版本。无论发生什么,都将选择第一个。我的意思是,取消时,我想回到他选择的任何时间。不会总是在晚上7点
$(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)
     }
  })
})
 $(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();
         }
     });
 });