1

送信を押した後に画像を表示する次のコードがあります

<img id="image1" src="images/Coverflow1.jpg" style="display:none;"/>
<input type="submit" name="submit" value="submit" onclick="$('#image1').show()"/>

名前は

var y=document.forms["myForm"]["fname"].value;

fname の場所

<h4>Name: <input type="text" name="fname" size="61" /></h4>

唯一の問題は、これが Jquery を使用していることです。そのため、名前フィールドが null であるかどうかを確認するなど、他の検証を通過できないようです。

if (name==null || name=="")
    {
    alert("First name must be filled out");
    return false;
    }

これに相当する Javascript があり、else ステートメントに貼り付けて、フォームが実際に事前に検証チェックを通過して適切に送信された場合にのみ表示されますか?

ありがとう

4

3 に答える 3

3

すべてjqueryで行います。

if (name==null || name=="")
{
alert("First name must be filled out");
return false;
}
else
{
$('#image1').show()
}
于 2013-05-30T14:02:49.323 に答える
2

送信ボタンにプロパティを.submit()添付する代わりに、jQueryのイベント ハンドラーを使用する必要があります。ユーザーが Enter キーを使用してフォームを送信した場合、プロパティはその関数を起動しませんonclickonclickただし、.submit()メソッドはそれもキャプチャします。

$("form[name=myForm]").submit(function(e) {
  //get value of name here.
  var name = this.fname.value; //this refers to the form, because that is what is being submitted.

  //Do validation.
  if (name == null || name == "") {
      //If failed, then prevent the form from submitting.
      alert("First name must be filled out.");
      e.preventDefault();
      return;
  }

  //If validation passed, show image.
  $("#image1").show();

});
于 2013-05-30T14:03:19.033 に答える
0

onclickまず、送信ボタンから属性を削除します。

<img id="image1" src="images/Coverflow1.jpg" style="display:none;"/>
<input type="submit" name="submit" value="submit" />

jQuery を使用しているため、JavaScript でクリック イベントにハンドラーをアタッチするのは簡単です (また、良い習慣でもあります)。

私はほとんどの場合、フォームの検証に次のパターンを使用します (ボタンをクリックする以外にもフォームを送信する方法があるため、ボタンでsubmitformなく で使用します)。clicksubmit

$(document).ready(function () {
    var formIsValid = function formIsValid () {
        // your validation routines go here
        // return a single boolean for pass/fail validations
        var name =document.forms.myForm.fname.value;
        return !!name; // will convert falsy values (like null and '') to false and truthy values (like 'fred') to true.
    };
    $('form').submit(function (e) {
        var allGood = formIsValid();
        if (!allGood) {
            e.preventDefault();
        }
        $('#image1').toggle(allGood); // hide if validation failed, show if passed.
        return allGood; // stops propagation and prevents form submission if false.
    });
});
于 2013-05-30T14:14:53.630 に答える