0
<!-- /Search box -->
<aside class="vehicle-search">
    <header>
        <h2>Find your vehicle</h2>
    </header>

    <article>
        <script>
            jQuery(function() {
                jQuery('.go').click(function(e) {
                    e.preventDefault();
                    jQuery('#vehicle').submit(function (event){
                        var action = '';
                        var actionid = jQuery('#categoryid').children(':selected').attr('value');

                        if (actionid == 1) {
                            action = 'sales/new-motorhomes';
                        }
                        if (actionid == 2) {
                            action = 'sales/used-motorhomes';
                        }
                        if (actionid == 3) {
                            action = 'sales/caravans';
                        }
                        jQuery(this).attr('action', action);
                    });
                });
            });
        </script>
        <form id="vehicle" action="sales/new-motorhomes" method="post">
            <h3>Manufacturer</h3>
            <!-- <input type="submit"> -->
            <select name="manufacturer" id="manufacturers">
                <option value="1">Auto-Trail</option>
                <option value="2">Adria</option>
                <option value="3">Elddis</option>
            </select>

            <h3>Vehicle Type</h3>
            <select name="category" id="categoryid">
                <option value="1">New Motorhomes</option>
                <option value="2">Used Motorhomes</option>
                <option value="3">Caravans</option>
            </select>

            <h3>Berths</h3>
            <input type="text" name="berth" id="berths" style="border: 0; color: #f6931f; font-weight: bold;" />
            <div id="slider-berths"></div> 
        </form>
    </article>

    <footer>
        <span class="goButton">
            <a class="go" href=""></a>
        </span> 
    </footer>
</aside>
<!-- /Search box -->

我在这里错过了什么..?

4

6 回答 6

3

由于submit-event 刚刚声明但从未调用过,因此您必须将 -event 放在submit-handler 之外click并在点击时触发它:

http://fiddle.jshell.net/rvx27/

jQuery(function () {
    jQuery('form:first').submit(function (event) {
        var action = '';
        var actionid = jQuery('#categoryid').children(':selected').attr('value');

        if (actionid == 1) {
            action = 'sales/new-motorhomes';
        }
        if (actionid == 2) {
            action = 'sales/used-motorhomes';
        }
        if (actionid == 3) {
            action = 'sales/caravans';
        }
        jQuery(this).attr('action', action);

    });
    jQuery('.go').click(function (e) {
        e.preventDefault();
        jQuery('form:first').submit();
    });
});
于 2013-03-06T11:28:33.617 回答
1

编码

jQuery('form:first').submit(function (event){});

将分配一个在提交表单时调用的事件处理程序。它实际上并没有提交表单。

要提交表格,您必须致电

jQuery('form:first').submit();

或在表单中有一个提交按钮。

您的代码可以重写为

jQuery(document).ready(function() {
   jQuery('form:first').submit(function (event){
        var action = '';
        var actionid = jQuery('#categoryid').children(':selected').attr('value');

        if (actionid == 1) {
           action = 'sales/new-motorhomes';
        }
        if (actionid == 2) {
           action = 'sales/used-motorhomes';
        }
        if (actionid == 3) {
           action = 'sales/caravans';
        }
        jQuery(this).attr('action', action);

        return true; // Important to return okay to submit

   });

   jQuery('.go').click(function(e) {
       e.preventDefault();
       jQuery('form:first').submit(); // Trigger the submission
   });
});

此代码分配事件处理程序document.ready()事件,然后随后的单击触发提交。

于 2013-03-06T11:33:39.843 回答
0

使用 jquery 提交表单时需要使用表单 ID。

代替 jQuery('form:first').submit(function (event){

jQuery('#vehicle').submit(function (event){

于 2013-03-06T11:26:43.367 回答
0

你为什么不使用 id 选择器

jQuery('#vehicle').submit();

这比:first提交表格更快更好。

于 2013-03-06T11:28:16.660 回答
0

你的代码:

jQuery('form:first').submit(function (event){ ... });

...正在绑定提交处理程序。要提交您需要的表格:

jQuery('form:first').submit();

如果可以提交表单的唯一方法是通过该链接,您可以在调用.submit()表单之前直接在链接的单击处理程序中执行该操作设置内容。或者单独绑定提交处理程序(从点击处理程序外部,或者每次点击时它会继续绑定其他处理程序),然后.submit()从点击处理程序内部调用。

于 2013-03-06T11:28:24.397 回答
0

试试这个:

jQuery(function() {

            jQuery('.go').click(function(e) {
                e.preventDefault();

                var action = '';
                var actionid = jQuery('#categoryid').children(':selected').attr('value');

                if (actionid == 1) {
                    action = 'sales/new-motorhomes';
                }
                if (actionid == 2) {
                    action = 'sales/used-motorhomes';
                }
                if (actionid == 3) {
                    action = 'sales/caravans';
                }
                jQuery('form:first').attr('action', action);

                jQuery('form:first').submit()

                });
            });
        });
于 2013-03-06T11:28:40.183 回答