-2

スクリプトがフォームで機能しない理由がわかりません。$("form").submit(function()id でフォームを呼び出さないのはなぜformですか? このスクリプトは実行さえしていないwindow.onbeforeunloadので、スクリプトに問題があると思います。誰が何が悪いのか知っていますか?

<form id="formID" class="access_form" name="form" method="post" action="site.com">          
    <div class="row">
        <label for="email">Email Address:</label>
        <input class="txt_email" type="text" id="email" name="email" value="" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" />
    </div>
    <div class="row">
        <input type="submit" class="btn_access"  value="Get Immediate Access" name="submit1" />
    </div>
</form>

JavaScript:

var formHasChanged = false;
var submitted = false; 

$(document).on('change', 'form.confirm-navigation-form input, form.confirm-navigation-form
select, form.confirm-navigation-form textarea', function (e) { 
    formHasChanged = true; 
}); 

$(document).ready(function () { 
    window.onbeforeunload = function (e) { 
        if (formHasChanged && !submitted) { 
            var message = "Please enter your email", e = e || window.event; 
            if (e) { 
                e.returnValue = message; 
            } 
            return message; 
        } 
    }
$("#formID").submit(function () { 
 submitted = true; 
});
});
4

1 に答える 1

0

これを試してみてください。フォームのIDはフォーム自体です。したがって、jQueryを使用してこのようなフォームを選択します

$("#form").submit(function () {
  submitted = true;
}); 

また

または、「formID」など、フォームに別の ID を指定してみてください。次に、この ID を使用して選択します。

$("#formID").submit(function () {
  submitted = true;
}); 
于 2012-09-02T07:38:35.120 に答える