質問

スライドコンテンツを備えた単一ページのサイトで作業しています。

jquery.form.jsを使用しており、ヘッドで以下を使用して連絡先フォーム/スクリプトを初期化しています。

<script type="text/javascript">
$(document).ready(function() { 

    $('#closeit').click(function(){
    $('.message').hide('slow');
    return false;
    });

    var options = { 
    target:        '#alert',
    }; 

    $('#contactForm').bind('submit', function() {
        $(this).ajaxSubmit(options);
        e.stopPropagation();
        return false;
    });


    $.fn.clearForm = function() {
      return this.each(function() {
        var type = this.type, tag = this.tagName.toLowerCase();
        if (tag == 'form')
          return $(':input',this).clearForm();
        if (type == 'text' || type == 'password' || tag == 'textarea')
          this.value = '';
        else if (type == 'checkbox' || type == 'radio')
          this.checked = false;
        else if (tag == 'select')
          this.selectedIndex = -1;
      });
    };  
</script>

また、ユーザーがフォーム内のどこかでクリックするときにイベントの伝播を防ぐために、次のものを使用しています。

$(function() {
    $('#email-form').click(fillForm);
});
function fillForm(e){
        e.stopPropagation();
        return false;
}

ただし、[送信]ボタンをクリックすると、フォームは送信されません。イベントが泡立つことなくフォームが提出されるように、これを修正する方法を考えることはできません。

ガイダンス/支援は大歓迎です。

ムティア。

(これがレコードのための私のフォームです:)

<form action="sendmemail.php" method="post" id="contactForm">
<ul>
    <li>
        <div class="field-row">
            <div class="field-name"><p>name:<span class="abbrev">*</span></div>
            <div class="field-box"><input type="text" class="allfields" name="name" id="name"/></div>
        </div>
    </li>
    <li>
        <div class="field-row">
            <div class="field-name"><p>email:<span class="abbrev">*</span></div>
            <div class="field-box"><input type="text" class="allfields" name="email" id="email"/></div>
        </div>
    </li>
    <li>
        <div class="field-row">
            <div class="field-name"><p>phone:<span class="abbrev">*</span></div>
            <div class="field-box"><input type="text" class="allfields" name="tele" id="tele"/></div>
        </div>
    </li>
    <li>
        <div class="field-row message-field">
            <div class="field-name"><p>message:<span class="abbrev">*</span></div>
            <div class="field-box">
                <textarea class="allfields messagetext" name="message" id="message"></textarea>
            </div>
        </div>
    </li>
    <li class="submitbutton">
        <input type="submit" name="submitbutton" id="submitbutton" value=" SUBMIT" />
    </li>
</ul>

役に立ちましたか?

解決

あなたが彼をあなたの使用をクリックすることを禁じている場合、ユーザーはどのようにフォームを送信するつもりですか

$(function() {
    $('#email-form').click(fillForm);
});
function fillForm(e){
        e.stopPropagation();
        return false;
}

他のヒント

jquery.form.jsホームページのajaxsubmitの例を見ましたか?http://jquery.malsup.com/form/#ajaxsubmit

$('#contactForm').submit(function() { 
    // inside event callbacks 'this' is the DOM element so we first 
    // wrap it in a jQuery object and then invoke ajaxSubmit 
    $(this).ajaxSubmit(options); 

    // !!! Important !!! 
    // always return false to prevent standard browser submit and page navigation 
    return false; 
}); 

フォームをクリックするときにどのイベントが期待しているのかわかりませんが、フォームのイベントの伝播を停止しているという事実は、ボタンのクリックも停止する可能性があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top