JSP表单自动提交

时间:2017-08-26 15:30:24

标签: javascript jsp servlets

问题是JSP页面会自动提交并将我转移到action servlet。如何让它等到用户在下拉选项菜单中进行选择?

        <form name="mainForm" action="psm.srv" method="POST" onSubmit="return setParam(event)">
            <select id="main" onchange="document.mainForm.submit()">
                <option value="null">Choose chart</option>
                <option value="pays">PAYS</option>
                <option value="expenses">EXPENSES</option>
        </select></form>

<script type="text/javascript">
   function setParam(event){
        event.preventDefault();
        var select = document.getElementById("main");
        var value = select.options[select.selectedIndex].value;
        document.mainForm.action = "psm.srv?optionSelected=" + value ;
        document.mainForm.submit();
   }
</script>

2 个答案:

答案 0 :(得分:0)

问题在于这一行:

onchange="document.mainForm.submit()"

这意味着只要选择输入发生变化,表单就会提交。您不必手动设置此值。在select字段中添加'name'属性,只需像往常一样在servlet中获取参数。该值自动设置。你需要一个提交按钮。

  <form name="mainForm" action="psm.srv" method="POST">

            <select name="selectField">
                <option value="null">Choose chart</option>
                <option value="pays">PAYS</option>
                <option value="expenses">EXPENSES</option>
             </select>

             <input type="submit" value="Submit"/>

   </form>

在您的servlet中,您只需:

String fieldValue = request.getParameter("selectField");

答案 1 :(得分:0)

删除提交和onchange方法,你可以简单地通过Jquery:

$(document).on('change', '#main', function () {

    var selectedValue=$(this).val();
    var url = "psm.srv?optionSelected=" + selectedValue;
    window.location = url;

    });

这将获取您当前的值并转到操作网址。