当html选择表单更改时,弹出警报然后发送表单

时间:2014-03-08 22:37:34

标签: javascript forms

我在表单中的选择中使用onchange =“this.form.submit()”,它按预期工作,但我想要在更改选择下拉菜单然后使用时弹出警报如果单击“确定”,则表单提交如果有人有办法做到这一点,我们将不胜感激,如果你能分享它。 -Thanks

<form action="/index.php/dashboard/pages/page_statistics/change_collection_type/" method="post">
    <input type="hidden" value="690" name="cID">
    <select onchange="this.form.submit()" name="ctID">
    <option value="4">Blog Entry</option>
    <option value="85" selected="selected">Blog Posting</option>
    <option value="5">Full</option>
    </select>
</form>

2 个答案:

答案 0 :(得分:1)

使用确认功能。就像警报一样工作,但如果用户按下正常则返回true,如果他们按下取消则返回false。

test = confirm("Continue?");

if (test) {
    this.form.submit()
}

所以对你来说,你把它放在你的onchange上

onchange="if(confirm('Continue?')){this.form.submit()}"

答案 1 :(得分:1)

这样的事情应该这样做:

...
<select onchange="submitForm(this.form);" name="ctID">
...

然后在你的函数中:

function submitForm(form){
    if(confirm('Are you sure you want to submit this form?')){
        form.submit();
    } else {
        return false;
    }
}

这是一个超级基本的例子,但应该传达如何做的概念。

作为旁注,你真的应该外化这个调用,将HTML与你的Javascript分开。这将使每个更易于维护,并且可以重复使用。一个例子是:

...
<select id="submitFormSelect" name="ctID">
...

然后在你的外部JS:

window.onload = function(){
    var form = document.getElementById('submitFormSelect');

    function submitForm(){
        if(confirm('Are you sure you want to submit this form?')){
            form.submit();
        } else {
            return false;
        }
    }

    if(form.addEventListener) {
        form.addEventListener('change',submitForm,false);
    } else if(form.attachEvent) {
        form.attachEvent('onchange',submitForm); 
    }
}

这是一个非常基本的实现,但应该传达整体概念。