如何在更改下拉列表时提交表格?

Joh*_*ohn 263 html jsp

我在JSP中创建了一个页面,我有一个下拉列表,一旦用户选择了一个值,他必须单击go按钮,然后将值发送到Servlet.

            </select>
            <input type="submit" name="GO" value="Go"/>
Run Code Online (Sandbox Code Playgroud)

我如何做到这一点,以便它在变化时做到这一点?例如,当用户选择John时,他的所有细节都从DB中重新获得并显示.我希望系统无需单击go按钮即可完成.

Bal*_*usC 604

只需要求JavaScript的帮助.

<select onchange="this.form.submit()">
    ...
</select>
Run Code Online (Sandbox Code Playgroud)

也可以看看:

  • @deweydb"很多用户阻止javascript ..."引用?我老实说从来没有遇到阻止javascript的用户 - 我开始相信这些用户是一个神话.一方面它会阻止他们使用一半的互联网; 任何精明到足以阻止剧本的人都可能知道这是多么无害和无处不在. (86认同)
  • @BalusC请为那些担心用户没有启用javascript的人添加此内容.<noscript>此表单要求您启用javascript才能正常工作,请在浏览器中启用javascript.</ noscript>`还@NathanHornby如果你真的想要一个引用为什么你不去公共图书馆大多数公共图书馆的块javascript出于安全原因以及一些学校也是如此不要试图把它作为一个神话传递它并且主要是出于安全原因保持完整性计算机,因为一些JavaScript是恶意代码... (7认同)
  • @deweydb很简单。只需在&lt;noscript&gt;标签中放置一个提交按钮即可。仅在用户使用noscript时显示。启用JS的用户可以简单地选择元素,而没有脚本的用户只需单击提交按钮。:) (7认同)
  • @deweydb:没有.否则我会回答:)只要显示一个`<noscript>`标语,如果启用了JS,网站的体验会更好.一个完全不同的选择是使用`<ul> <li> <input type ="submit">`并抛出一堆CSS,使其看起来像一个真正的下拉列表.但是那时再也没有"<select>"了. (5认同)
  • 很多用户阻止javascript,有没有办法在没有javascript的情况下执行此操作? (4认同)
  • @NathanHornby 我使用 Firefox 的 NoScript 扩展来阻止 javascript。然后,当网站被破坏时(几乎所有网站都被破坏),我只启用那些将其恢复到功能状态的脚本,并关闭各种跟踪器。基本上,我手动选择在互联网上使用 javascript。 (2认同)

MD *_*med 76

简单的JavaScript会做 -

<form action="myservlet.do" method="POST">
    <select name="myselect" id="myselect" onchange="this.form.submit()">
        <option value="1">One</option>
        <option value="2">Two</option>
        <option value="3">Three</option>
        <option value="4">Four</option>
    </select>
</form>
Run Code Online (Sandbox Code Playgroud)

这是一个很好的javascript教程的链接.


sat*_*dos 10

除了使用this.form.submit()你还提交id或名称.例如我有这样的形式:<form action="" name="PostName" id="IdName">

  1. 按名字 : <select onchange="PostName.submit()">

  2. 按ID: <select onchange="IdName.submit()">

  • 在*属性中写入的任何内容都被解释为Javascript.所以PostName.submit()是javascript. (8认同)

小智 6

对于以上答案中的那些。绝对是JavaScript。它只是内联。

顺便说一句,如果您想应用于所有选择,则相当于jQuery:

$('form select').on('change', function(){
    $(this).closest('form').submit();
});
Run Code Online (Sandbox Code Playgroud)