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 は宣言されただけで呼び出されないため、-eventsubmitを -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 に答える