簡體   English   中英

表格提交

[英]form submit

在此函數中,基於輸入的值,表單提交為true / false。 為什么在這個函數中沒有返回true?

基本上,我的if語句測試表單輸入中的問號。 如果有,那么我不希望表單提交到search.php。 如果沒有問號,那么是else語句,那么我希望表單提交給search.php。 我嘗試使用return true; 使.form1提交,但它不起作用。 然后我嘗試了$('。form1')。submit(),但這使得它在輸入被按下之前提交。

                <script>

            $(".askInput").keyup(function() {

                if ($(this).val().indexOf("?") != -1) {

                    $(this).css({"color" : "#00bfff", 'border-top-right-radius' : '0px', 'border-bottom-right-radius' : '0px', '-moz-border-top-right-radius' : '0px', '-moz-border-bottom-right-radius' : '0px', '-webkit-border-top-right-radius' : '0px', '-webkit-border-bottom-right-radius' : '0px'});

                    $('.searchEnter').stop().animate({
                    marginLeft: "310px"
                    }, 200 );
                    $('.form1').submit(function () {
                         return false;
                        });


                } else {

                    $(this).css({"color" : "#333", 'border-top-right-radius' : '5px', 'border-bottom-right-radius' : '5px', '-moz-border-top-right-radius' : '5px', '-moz-border-bottom-right-radius' : '5px', '-webkit-border-top-right-radius' : '5px', '-webkit-border-bottom-right-radius' : '5px'});

                    $('.searchEnter').stop().animate({
                        marginLeft: "250px"
                        }, 200 );
                    $('.form1').submit(function () {
                         return true;
                        });

                }
            });

            </script>

嘗試。

$('.form1').submit(function (e) {
  if ($('.askInput').val().indexOf("?") != -1) {
    e.preventDefault();
  }
  $(this).submit();
});

而不是不斷更改表單的提交處理程序,為什么不在提交時檢查問號?

$('.form1').submit(function () {
  if ($('.askInput').val().indexOf("?") != -1) return false;
});

$(".askInput").keyup(function () {

  if ($(this).val().indexOf("?") != -1) {

    $(this).css({
      "color": "#00bfff",
      'border-top-right-radius': '0px',
      'border-bottom-right-radius': '0px',
      '-moz-border-top-right-radius': '0px',
      '-moz-border-bottom-right-radius': '0px',
      '-webkit-border-top-right-radius': '0px',
      '-webkit-border-bottom-right-radius': '0px'
    });

    $('.searchEnter').stop().animate({
      marginLeft: "310px"
    }, 200);
  } else {

    $(this).css({
      "color": "#333",
      'border-top-right-radius': '5px',
      'border-bottom-right-radius': '5px',
      '-moz-border-top-right-radius': '5px',
      '-moz-border-bottom-right-radius': '5px',
      '-webkit-border-top-right-radius': '5px',
      '-webkit-border-bottom-right-radius': '5px'
    });

    $('.searchEnter').stop().animate({
      marginLeft: "250px"
    }, 200);
  }
});
$('.form1').submit(function () {
    return true;
});

這種結合,只是返回函數truesubmit事件。 即在此之后,當您提交表單時,該函數將返回true 就是這樣。

這是手冊條目

.submit( handler(eventObject) )
handler(eventObject)每次觸發事件時執行的函數。


如果您只想提交表單,請使用$('.form1').submit() 如果您不想提交表單,請不要調用.submit() 即:

if (...) {
    ...
    // don't call submit
} else {
    ...
    $('.form1').submit();
}

使用不帶任何參數的submit$('.form').submit()

我認為你想在askInput條目無效時阻止表單提交。

將提交處理程序綁定到表單時,它始終是附加的,因此每次運行keyUp處理程序時,都會向表單添加一個額外的提交處理程序。 其中一個必然會“返回false”,阻止表單提交。

相反,可能禁用提交按鈕或向表單添加“無效”類,並添加單個表單提交處理程序,以確保表單沒有無效的類。

例如:

<form>
  <input name="ask" /> <input type="submit" />
</form>
<script>
$('form').submit(function(e) {
  if ($(this).hasClass('invalid')) {
    e.preventDefault();
  }
});
$('input[name="ask"]').keyup(function(e) {
  if ($(this).val().indexOf("?") != -1) {
    // ...

    $(this.form).addClass('invalid');
    // or
    $(':submit', this.form).attr('disabled', 'disabled');
  } else {
    // ...

    $(this.form).removeClass('invalid');
    // or
    $(':submit', this.form).removeAttr('disabled');
  }
});
</script>

或者,使用經過實戰考驗的jQuery驗證庫,如jQuery ketchup

Blender試圖告訴你的是什么(在所有jQuery魔法中,如果你喜歡那種東西)是為表單的提交事件添加一個監聽器來查看輸入並返回false,如果有的話? 那里。 簡單來說,POJS術語:

<form onsubmit="return validateInput(this);">
  <input name="foo" value="?">
  <input type="submit">
</form>

<script type="text/javascript">
  function validateInput(form) {

    if (/\?/.test(form.foo.value)) {
      // value has a ?, ask user to fix it
      alert('Get rid of ? knucklehead!!');

      // cancel submit
      return false;
    }
  }
</script>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM