0

以下のコーディングから 2 つの質問があります。

まず、送信前に検証を実行したいと思います。検証機能で何らかのエラーが検出された場合、送信を停止するにはどうすればよいですか? 各エラーメッセージの後に単に false を返すだけですか? ただし、1 つのエラーが発生した後に停止するのではなく、すべてのフィールドをチェックしているようです。

次に、php 経由でデータを挿入したいと思います。毎回、データをデータベースに正常に追加できますが、常に「エラー: エラー」という警告が表示されます。エラーがどこから来るのかわかりません...

$(document).ready(function()
{
    $('#test').click(function(){
    validation();   
    });

    function validation(){  
    var loginID=$("#loginID").val();

    if (loginID=="" || loginID==null)
    {
        $('#errorID').empty();
        $('#errorID').append(
        '<h6>' + "The Login Name cannot be empty" + '</h6>');
        $("#errorID").show();

    }
    else
    {

    }

    // check pw
    $("#errorPW").hide();
    if ($("#loginPW").val()=="" || $("#loginPW").val()==null)
    {
        $('#errorPW').empty();
        $('#errorPW').append(
        '<h6>' + "The Login Password cannot be empty" + '</h6>');
        $("#errorPW").show();

    }
    else
    {

    }

    //return false;

    } // end of #validation


    $('form').submit(function(){

        validation();
        $.ajax({
            type: 'POST',
            data: 
            {
                    loginID:        $("#loginID").val(),
                    // some data here

            },
            url: 'http://mydomain.com/reg.php',
            success: function(data){
                alert('successfully.');         
            },
            error: function(jqXHR, textStatus){
                alert("Error: " + textStatus);
            }
        });

        return false;
    });
});
4

5 に答える 5

1

以下のようになります。エラーが発生した場合は、 falseを返します。スクリプトの実行を停止します。

function validation(){  
    var loginID=$("#loginID").val();

    if (loginID=="" || loginID==null)
    {
        $('#errorID').empty();
        $('#errorID').append(
        '<h6>' + "The Login Name cannot be empty" + '</h6>');
        $("#errorID").show();
        return false;

    }
    else
    {
       return true; 
    }

    // check pw
    $("#errorPW").hide();
    if ($("#loginPW").val()=="" || $("#loginPW").val()==null)
    {
        $('#errorPW').empty();
        $('#errorPW').append(
        '<h6>' + "The Login Password cannot be empty" + '</h6>');
        $("#errorPW").show();
        return false;

    }
    else
    {
        return true;
    }

    return true;

    } // end of #validation
于 2013-03-22T06:59:10.117 に答える
1

validation以下のように関数を設計します。

function validation()
{  
    var isValid = true;

    if(field validation fail)
    {
        isValid = false;
    }
    else if(field validation fail)
    {
        isValid = false;
    }

    return isValid;
}

背後にある基本的な考え方は、失敗codeするreturning falseたびに行うことです。validation

于 2013-03-22T06:59:21.163 に答える
1

使用できますreturn false。実行を停止します

<form onSubmit="validatdeForm();"></form>


function validatdeForm()
{
  //here return true if validation passed otherwise return false
}

また

 if (loginID=="" || loginID==null)
    {
        $('#errorID').empty();
        $('#errorID').append(
        '<h6>' + "The Login Name cannot be empty" + '</h6>');
        $("#errorID").show();
        return false;

    }

    if ($("#loginPW").val()=="" || $("#loginPW").val()==null)
{
    $('#errorPW').empty();
    $('#errorPW').append(
    '<h6>' + "The Login Password cannot be empty" + '</h6>');
    $("#errorPW").show();
    return false;

}
于 2013-03-22T06:57:14.407 に答える
1

適切なフォーム検証を行うには、より組織的な方法で行うことをお勧めします。デバッグが容易になります。これを試して:

var validation = {
  // Checking your login ID
  'loginID' : function() {
    // Login ID validation code here...
    // If a validation fails set validation.errors = true;
    // Additionally you can have a validation.idError that contains
    // some error message for an id error.
  },

  // Checking your password
  'loginPW' : function() {
    // Password validation code here...
    // If a validation fails set validation.errors = true;
    // As with id, you can have a validation.pwError that contains
    // some error message for a password error.
  },

  'sendRequest' : function () {
    if(!validation.errors) {
      // Code for whatever you want to do at form submit.
    }
  }
};

$('#test').click(function(){
  validation.errors = false;
  validation.loginID();
  validation.loginPW();
  validation.sendRequest();
  return false;
});
于 2013-03-22T11:28:40.567 に答える
0
function validateimage() { if($("#photo").val() !== '' ) {

    var extensions = new Array("jpg","jpeg","gif","png","bmp");
    var image_file = document.form_useradd.photo.value;
    var image_length = document.form_useradd.photo.value.length;
    var pos = image_file.lastIndexOf('.') + 1;
    var ext = image_file.substring(pos, image_length);
    var final_ext = ext.toLowerCase();
    for (i = 0; i < extensions.length; i++)
    {
    if(extensions[i] == final_ext)
    {
    return true;
    }
    }
    alert(" Upload an image file with one of the following extensions: "+ extensions.join(', ') +".");

    //$("#error-innertxt_photo").show().fadeOut(5000);
    //$("#error-innertxt_photo").html('Enter valid file type');
    //$("#photo").focus();
    return false;

}
于 2013-10-21T10:09:16.603 に答える