0

jquery バリデーター 1.8 を使用して、単純な検証システムを作成しました。オフライン (xampp for mac os 1.7.3) は魅力的に機能します。オンラインになると、検証が狂います。チェックされたフィールド (ユーザー名) の通常の動作は、php ファイルを使用して、ユーザー名がデータベース内で一意であることがライブでチェックされることです。オンラインでは、フィールドに出て、フィールドから出て、フィールドに戻るまで、チェックは行われません。(これは正常です)次に、チェックを開始します(そして動作しているようです)が、すべてがうまくいくと、何も表示されずに「1」のエラーメッセージが表示され、バリデーターによってエラーと見なされ、送信が停止しますフォーム....コードは次のとおりです。

HTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;" />
<meta charset="utf-8">
<title>Documento senza titolo</title>
<!-- jquery //-->   
<script src="js/jquery-1.8.3.js"></script>
<script src="js/jquery-ui-1.9.2.custom/js/jquery-ui-1.9.2.custom.js"></script>
<!-- jquery validazioni
<script type="text/javascript" src="js/jquery-validation-1.8.1/jquery.validate.js"></script>
 //-->   
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.js"></script>

<script type="text/javascript" src="js/jsBetta/messaggiErrore.js"></script>  
<!-- datepicker lingua italiana //-->  
<script type="text/javascript" src="js/linguaIT/jquery.ui.datepicker-it.js"></script>
<!-- script MIEI (validazione e funzioni) //-->  
<script type="text/javascript" src="js/jsBetta/funzioni.js"></script>
<script type="text/javascript" src="js/jsBetta/registrazione.js"></script>

<link rel="stylesheet" href="css/stile.css" /> 
<link rel="stylesheet" href="js/jquery-ui-1.9.2.custom/css/custom-theme/jquery-ui-1.9.2.custom.css" />
</head>

<body>
<form action="registrazioneDB.php" id="insertUtenteForm" method="post">
<fieldset>
    <label for="nome_utente">Username:</label>
    <input type="text" name="nome_utente" id="nome_utente" maxlength="30"autocomplete="off">
</fieldset>
<fieldset>
      <input id="bottoneSubmit" name="bottoneSubmit" class="submit" type="submit" value="Registrati">
</fieldset>
</form>
</body>
</html>

registrazione.js:

   $(document).ready(function(){        

    var nome_utente;

    jQuery('#insertUtenteForm').validate({ 
        rules: 
        {
            nome_utente: 
                {required: true,
                remote: { url:"AdMin/usrAvailCk.php", async:false }}
        },
        messages: {
            nome_utente: { remote: " Username non disponibile"}
        },
        invalidHandler: function(form, validator) {
            var errors = validator.numberOfInvalids();
            if (errors) {
                alert("Si prega di riempire correttamente i campi obbligatori, evidenziati con l'asterisco.");
                validator.errorList[0].element.focus();
                }
        },  
});
return false;
});

usrAvailCk.php

<?php
include "connessione.php";

$nome_utente=$_GET['nome_utente'];

$queryUserAvailable = "SELECT * FROM utente where nome_utente='$nome_utente'";
$rsUserAvailable = connetti($queryUserAvailable);


if(mysql_num_rows($rsUserAvailable) == 0){
$valid=true;
}
else{
$valid=false;
}


echo json_encode($valid);
?>

messaggiErrore.js

jQuery.extend(jQuery.validator.messages, {
required: " *",
email: " *",
equalTo: " *",
maxlength: jQuery.validator.format(" *"),
minlength: jQuery.validator.format(" *"),
remote: " *",
});

jQuery(document).ready(function() {
// imposto i dettagli dei messaggi di validazione
$.validator.addMethod("valueNotEquals", function(value, element, arg){
  return arg != value;}, " *");
//$.validator.messages.required = ' *';
//$.validator.messages.email=' *';
});
4

2 に答える 2

0

http://jquerybyexample.blogspot.com/2012/01/write-and-test-your-jquery-code-online.html - コードを検証するためのオンライン ツールはこちら

于 2013-09-12T09:19:54.773 に答える
0

この質問を忘れてすみません。この質問の後、私の友人の 1 人が問題を解決してくれました。それで、これがそれです。

コードをオンラインで転送する場合は、単純な php 関数であるphpinfo () を使用して、サーバーがサポートする php のバージョンと提供されるサービスを確認する必要があります。

この場合、これはjson_encode () の問題でした。この関数 (明らかに!) は、json サービスが起動して機能している場合にのみ機能します。私の場合、サーバーはかなり古い php バージョンを提供し、json は利用できず、json_encode の結果は無意味でした。

于 2013-09-12T15:21:17.743 に答える