Php jQuery提交前确认 提交 取消 应用

Php jQuery提交前确认 提交 取消 应用,php,javascript,jquery,Php,Javascript,Jquery,我在上面有一个表单:当我点击下拉值“Cancelled”并点击Save按钮时,我想给alert box一个带有Yes和No按钮的警告消息 如果用户点击Yes,则根据表单操作参数中的需要将其转到submit页面。 如果用户单击“否”,则保持在同一表单页面上,而不刷新页面。 这可以在jQuery中完成吗?是的,可以通过以下方式完成: <form action ="/submit-page/" method='post' class="editable"> <fieldset

我在上面有一个表单:当我点击下拉值“Cancelled”并点击Save按钮时,我想给alert box一个带有Yes和No按钮的警告消息

如果用户点击Yes,则根据表单操作参数中的需要将其转到submit页面。 如果用户单击“否”,则保持在同一表单页面上,而不刷新页面。 这可以在jQuery中完成吗?

是的,可以通过以下方式完成:

<form action ="/submit-page/" method='post' class="editable">
    <fieldset>
    <select name="status" id='status'>
        <option value="Submitted">Submitted</option>
        <option value="Canceled">Canceled</option>
              <option value="Application">Application</option>
    </select>
          <input type="submit" name="submit" value="SAVE">

</form>
这与Chris Pratts的解决方案相反,只要您在下拉框中更改所选的值,该解决方案就会这样做。单击“提交”按钮后,His将执行此操作。

是的,可以执行以下操作:

<form action ="/submit-page/" method='post' class="editable">
    <fieldset>
    <select name="status" id='status'>
        <option value="Submitted">Submitted</option>
        <option value="Canceled">Canceled</option>
              <option value="Application">Application</option>
    </select>
          <input type="submit" name="submit" value="SAVE">

</form>
$('#status').change(function(){
   var val = $(this).val();
   if( val == 'Submitted' ) {
     $('.editable').submit();
     return false;
   } else if (val == 'Canceled')
   {
      var answer = confirm('are you sure');
      return false;
   } else {
    ... 
   }
});

这与Chris Pratts的解决方案相反,只要您在下拉框中更改所选的值,该解决方案就会这样做。单击submit按钮后,His将完成此操作。

在jQuery中拦截表单提交的最直接方法如下:

$('#status').change(function(){
   var val = $(this).val();
   if( val == 'Submitted' ) {
     $('.editable').submit();
     return false;
   } else if (val == 'Canceled')
   {
      var answer = confirm('are you sure');
      return false;
   } else {
    ... 
   }
});
$('form.editable').submit(function(){
    if ($('#status').val()=='Canceled') {
        if (!confirm('Warning message here. Continue?')) {
            return false;
        }
    }
});

有关更多详细信息,请参阅。

在jQuery中拦截表单提交的最直接方法如下:

$('form.editable').submit(function(){
    if ($('#status').val()=='Canceled') {
        if (!confirm('Warning message here. Continue?')) {
            return false;
        }
    }
});

有关详细信息,请参阅。

嗯。。。这里的其他答案有一个问题:它们不适用于HTML

jQuery中有一个bug(我认为这是一个bug),如果表单中的某个元素的
名称
submit
,那么触发表单的
submit
事件将不起作用

您需要从
input type=“submit”
按钮中删除
name
属性,或者只需给它一个名称而不是“submit”

HTML

$("form.editable").submit(function(){
    if(confirm("Really submit the form?")) {
        return true;
    } else {
        return false; //form will not be sumitted and page will not reload
    }
});
PHP

$('#status').on('change', function() {

    var $this = $(this),
        val = $this.val();

    if (val === 'Canceled' && confirm("are you sure?")) {
        $this.closest('form').submit();
    }
});​
示例

工作:

不工作:

编辑

您已经更新了您的问题,而此答案不再是您所寻找的有效解决方案。相反,请看

再次编辑

这是的一个修改版本。它只是等待DOM准备就绪(加载元素),然后执行第一个
$(…)
中包含的逻辑


嗯。。。这里的其他答案有一个问题:它们不适用于HTML

jQuery中有一个bug(我认为这是一个bug),如果表单中的某个元素的
名称
submit
,那么触发表单的
submit
事件将不起作用

您需要从
input type=“submit”
按钮中删除
name
属性,或者只需给它一个名称而不是“submit”

HTML

$("form.editable").submit(function(){
    if(confirm("Really submit the form?")) {
        return true;
    } else {
        return false; //form will not be sumitted and page will not reload
    }
});
PHP

$('#status').on('change', function() {

    var $this = $(this),
        val = $this.val();

    if (val === 'Canceled' && confirm("are you sure?")) {
        $this.closest('form').submit();
    }
});​
示例

工作:

不工作:

编辑

您已经更新了您的问题,而此答案不再是您所寻找的有效解决方案。相反,请看

再次编辑

这是的一个修改版本。它只是等待DOM准备就绪(加载元素),然后执行第一个
$(…)
中包含的逻辑



这不是用户要求的,而是对用户要求的一种解释。他的题目是“提交表格后”。谢谢大家。克里斯·普拉特的解决方案似乎非常适合我目前的情况。。但它不起作用..当我单击“保存”按钮时,如果状态为“已取消”,则不会生成警告消息..@newbie因此,您希望确认对话框仅在用户单击“提交”后出现,并且仅在选择了“已取消”选项时出现?如果是这样,Chris的解决方案确实有效:这不是用户要求的,而是对用户要求的解释。他的题目是“提交表格后”。谢谢大家。克里斯·普拉特的解决方案似乎非常适合我目前的情况。。但它不起作用..当我单击“保存”按钮时,如果状态为“已取消”,则不会生成警告消息..@newbie因此,您希望确认对话框仅在用户单击“提交”后出现,并且仅在选择了“已取消”选项时出现?如果是这样,Chris的解决方案确实有效:您是指此处提到的确认框:还是类似于:您应该将此作为答案发布:)我很受诱惑…教程此处:。它包括一个简单的js示例。你是说像这里提到的确认框:还是像:你应该把它作为答案发布:)我被诱惑了…这里的教程:。它包括一个简单的js示例。@Christopher..如果我删除该名称,如何在服务器端检查是否按下了提交按钮:例如,如果我想检查(!empty($\u POST['submit']),您只需更改名称即可。它不需要完全移除。我已经更新了我的答案来反映这一点。我尝试了Chris Platt的答案。但在这个网站上它不起作用:我尝试了包括不同的jquery库,但它不起作用@Chris你认为是库吗?啊。。。您需要将javascript放在表单之后,或者在文档准备好后执行它。我将更新我的答案以包含此内容。@Christopher..如果我删除该名称,将如何在服务器端检查是否按下了提交按钮:例如,如果我想检查(!empty($\u POST['submit']),您只需更改名称即可。它不需要完全移除。我已经更新了我的答案来反映这一点。我尝试了Chris Platt的答案。但在这个网站上它不起作用:我尝试了包括不同的jquery库,但它不起作用@Chris你认为是库吗?啊。。。您需要将javascript放在表单之后,或者在文档准备好后执行它。我将更新我的答案以包括这一点。