Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.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 当html选择表单更改时,弹出警报,然后发送表单_Javascript_Forms - Fatal编程技术网

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

Javascript 当html选择表单更改时,弹出警报,然后发送表单,javascript,forms,Javascript,Forms,我在表单中的select上使用onchange=“this.form.submit()”,它按预期工作,但我希望在更改select下拉列表时弹出一个警报,然后在单击OK时让表单提交。如果有人有办法做到这一点,如果你能分享,我们将不胜感激-谢谢 <form action="/index.php/dashboard/pages/page_statistics/change_collection_type/" method="post"> <input type="hidde

我在表单中的select上使用onchange=“this.form.submit()”,它按预期工作,但我希望在更改select下拉列表时弹出一个警报,然后在单击OK时让表单提交。如果有人有办法做到这一点,如果你能分享,我们将不胜感激-谢谢

<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>

博客条目
博客帖子
满满的

使用确认功能。其工作原理与警报类似,但如果用户按OK,则返回true;如果用户按cancel,则返回false

test = confirm("Continue?");

if (test) {
    this.form.submit()
}
所以对你来说,你应该把它放在你的onchange上

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

像这样的东西应该可以做到:

...
<select onchange="submitForm(this.form);" name="ctID">
...
这是一个超级基本的例子,但应该传达如何做的概念

作为旁注,您确实应该将这个调用外部化,将HTML与Javascript分离。这将使每一个都更易于维护,并且具有潜在的可重用性。例如:

...
<select id="submitFormSelect" name="ctID">
...
再次是一个非常基本的实现,但应该传达整体概念

...
<select id="submitFormSelect" name="ctID">
...
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); 
    }
}