0

私のサイトには、Ajax 経由でデータを送信し、メッセージを下にスライドさせる単純なフォームがあります。送信は正常に機能し、メッセージは下にスライドしますが、検証部分は機能しません。ユーザーがフィールドに何も入力しない場合にアラートを表示したい。

コード全体は次のとおりです。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>Coming Soon!</title>

        <!-- Our CSS stylesheet file -->
        <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Open+Sans+Condensed:300" />
        <link rel="stylesheet" href="assets/css/styles.css" />
        <link rel="stylesheet" href="assets/countdown/jquery.countdown.css" />

        <!--[if lt IE 9]>
          <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
        <![endif]-->
        <!-- JavaScript includes -->
        <script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
        <script src="assets/countdown/jquery.countdown.js"></script>
        <script src="assets/js/script.js" charset="UTF-8"></script>
        <script>

        $(function() {
    $(".submit").click(function() {
      var sposti = $("input#sposti").val();
        if (sposti == "") {
        alert ('Kirjoita nyt jotain herranjestas tuohon!');
        return false;
      }
var dataString = $('#formi').serialize();
  //alert (dataString);return false;
  $.ajax({
    type: "POST",
    url: "mailer.php",
    data: dataString,
    success: function() {
     $("#thanks").slideDown('slow');
    }   


  });
  return false;

    });
  });



        </script>


</head>

    <body>
    <div id="thanks" style="width:100%; height:100px; background:url('../img/page_bg_center.jpg') no-repeat center center;
    position:absolute; top:0px; border-bottom:2px solid black; text-align:center; display:none;"><span style="position:absolute; top:30px;">Kiitos! Saat tiedon kun sivusto avautuu :)</span></div>

        <div id="countdown"></div>

        <p id="note"></p>
        <p style="text-align:center; color:#666666; text-shadow: 2px 2px 0 rgba(255, 255, 255, 0.3);">Haluatko tiedon kun sivusto aukeaa? Anna s&auml;hk&ouml;postisi alle.<br><br></p>
  <form action="#" method="post" style="text-align:center;" id="formi">
        <input type="email" name="sposti">&nbsp;<input type="submit" class="submit" style="width:50px;">
    </form>



    </body>
</html>
4

3 に答える 3

2

あなたはセレクターを使用しています$("input#sposti")。ただし、id 'sposti` の要素はありません。要素のIDを「spotsi」に設定すれば問題ありません。

于 2012-06-24T18:30:01.660 に答える
0

入力の空白スペースを削除するには、にvar sposti = $("input#sposti").val();置き換えます。var sposti = $.trim($("input#sposti").val());

于 2012-06-24T18:47:12.347 に答える
0

大丈夫です。あなたはここにあるものを1つ見逃してい$.trimます

if ($trim(sposti) == "")

誰かspacebarが電子メールを入力すると、それが手放されるからです

そして、sjhonnyname="sposti"id="sposti"述べたように置き換えます

于 2012-06-24T18:30:21.483 に答える