jQuery에서 원격 규칙을 추가 할 때 작성중인 양식으로 Internet Explorer에서 이상한 동작이 발생합니다. 즉, 원격 "check_username.php"를 사용하여 "username"과 관련된 규칙의 유효성을 검사하십시오. 아래 코드에서 jquery 스크립트를 사용하는 view.php 스크립트를 사용하고 사이트 전체의 페이지에서 유니폼보기를 갖는 "page_start"사용자 정의 함수를 만듭니다. 다음은 view.php에 JQuery와 스크립트입니다 :PHP에서 jQuery 원격 유효성 검사 Internet Explorer에서 이상한 일을하는 양식 입력과 관련된 MySQL 쿼리
<script type="text/javascript" src="/StructuredPages/js/jquery.js"></script>
<script type="text/javascript" src="/StructuredPages/js/jquery.validate.js"></script>
<script type="text/javascript" src="/StructuredPages/js/jquery.validate.password.js"></script>
이 후, I가 클라이언트 측 유효성 검사를 원하는 형태 코드 인 create_user_redo_old.php 파일을 통해 서버 측 유효성 검사가 있습니다.
<?php
require_once $_SERVER['DOCUMENT_ROOT'] . "/StructuredPages/scripts/view.php";
$inline_javascript = <<<EOD
$(document).ready(function() {
$("#signup_form").validate({
rules: {
first_name: {
minlength : 2
},
last_name: {
minlength : 2
},
username: {
minlength: 4,
remote: "check_username.php"
},
street: {
minlength : 5
},
city: {
minlength : 2
},
postal_code: {
minlength: 5
},
password: {
minlength: 6
},
confirm_password: {
minlength: 6,
equalTo: "#password"
}
},
messages: {
first_name: {
minlength: "First Name must contain at least 2 characters"
},
last_name: {
minlength: "Last Name must contain at least 2 characters"
},
username: {
minlength: "Username must contain at least 4 characters",
remote: "Username already exists, please try another"
},
street: {
minlength: "Street must contain at least 5 characters"
},
city: {
minlength: "City must contain at least 2 characters"
},
postal_code: {
minlength: "Zip Code must contain 5 numerals"
},
password: {
minlength: "Passwords must be at least 6 characters"
},
confirm_password: {
minlength: "Passwords must be at least 6 characters",
equalTo: "Your passwords do not match."
}
}
});
});
EOD;
page_start("Free Member Registration", $inline_javascript);
?>
<div id="content">
<h1>Member Registration</h1>
<p>Please enter your information below:</p>
<form id="signup_form" action="create_user_redo_old.php"
method="POST" enctype="multipart/form-data">
<fieldset>
<label for="first_name">First Name:</label>
<input type="text" name="first_name" id="first_name" size="20" class="required" /><br />
<label for="last_name">Last Name:</label>
<input type="text" name="last_name" id-"last_name" size="20" class="required" /><br />
<label for="username">Username:</label>
<input type="text" name="username" id="username" size="20" class="required" /><br />
<label for="password">Password:</label>
<input type="password" id="password" name="password"
size="20" class="required password" />
<div class="password-meter">
<div class="password-meter-message"> </div>
<div class="password-meter-bg">
<div class="password-meter-bar"></div>
</div>
</div>
<br />
<label for="confirm_password">Confirm Password:</label>
<input type="password" id="confirm_password" name="confirm_password"
size="20" class="required" /><br />
<label for="email">E-Mail Address:</label>
<input type="text" name="email" size="30" class="required email" /><br />
<label for="street">Street:</label>
<input type="text" name="street" id="street" size="50" class="required" /><br />
<label for="city">City:</label>
<input type="text" name="city" id="city" size="30" class="required" /><br />
<label for="state">State:</label>
<select name="state" class="required">
<option value=""></option>
<option value="AL">Alabama</option>
<option value="AK">Alaska</option>
<option value="AZ">Arizona</option>
<option value="AR">Arkansas</option>
<option value="CA">California</option>
<option value="CO">Colorado</option>
<option value="CT">Connecticut</option>
<option value="DE">Delaware</option>
<option value="DC">District of Columbia</option>
<option value="FL">Florida</option>
<option value="GA">Georgia</option>
<option value="HI">Hawaii</option>
<option value="ID">Idaho</option>
<option value="IL">Illinois</option>
<option value="IN">Indiana</option>
<option value="IA">Iowa</option>
<option value="KS">Kansas</option>
<option value="KY">Kentucky</option>
<option value="LA">Louisiana</option>
<option value="ME">Maine</option>
<option value="MD">Maryland</option>
<option value="MA">Massachusetts</option>
<option value="MI">Michigan</option>
<option value="MN">Minnesota</option>
<option value="MS">Mississippi</option>
<option value="MO">Missouri</option>
<option value="MT">Montana</option>
<option value="NE">Nebraska</option>
<option value="NV">Nevada</option>
<option value="NH">New Hampshire</option>
<option value="NJ">New Jersey</option>
<option value="NM">New Mexico</option>
<option value="NY">New York</option>
<option value="NC">North Carolina</option>
<option value="ND">North Dakota</option>
<option value="OH">Ohio</option>
<option value="OK">Oklahoma</option>
<option value="OR">Oregon</option>
<option value="PA">Pennsylvania</option>
<option value="RI">Rhode Island</option>
<option value="SC">South Carolina</option>
<option value="SD">South Dakota</option>
<option value="TN">Tennessee</option>
<option value="TX">Texas</option>
<option value="UT">Utah</option>
<option value="VT">Vermont</option>
<option value="VA">Virginia</option>
<option value="WA">Washington</option>
<option value="WV">West Virginia</option>
<option value="WI">Wisconsin</option>
<option value="WY">Wyoming</option>
<option value="AS">American Samoa</option>
<option value="FM">Federated States of Micronesia</option>
<option value="GU">Guam</option>
<option value="MH">Marshall Islands</option>
<option value="MP">Northern Mariana Islands</option>
<option value="PW">Palau</option>
<option value="PR">Puerto Rico</option>
<option value="VI">Virgin Islands</option>
</select><br />
<label for="postal_code">Zip Code:</label>
<input type="text" name="postal_code" id="postal_code" size="5" maxlength="5" class="required digits" /><br />
<input type="hidden" name="MAX_FILE_SIZE" value="400000" />
<label for="user_pic">Upload a picture:</label>
<input type="file" name="user_pic" size="30" /><br />
<label for="bio">Bio:</label>
<textarea name="bio" cols="40" rows="10"></textarea>
</fieldset>
<br />
<fieldset class="center">
<input type="submit" value="Register" />
<input type="reset" value="Clear and Restart" />
</fieldset>
</form>
</div>
<div id="footer"></div>
</body>
</html>
이
는 IE에서<?php
require_once $_SERVER['DOCUMENT_ROOT'] . '/StructuredPages/scripts/app_config.php';
require_once $_SERVER['DOCUMENT_ROOT'] . '/StructuredPages/scripts/database_connection.php';
$name = trim($_REQUEST['username']);
$uname = mysql_real_escape_string($name);
$query = "SELECT username FROM users WHERE username='$uname';";
$res = mysql_query($query);
if (mysql_num_rows($res) != 0)
{
$output = false;
} else {
$output = true;
}
echo json_encode($output);
?>
내 문제는 사용자 이름 유효성 검사 MySQL 데이터베이스의 특정 사용자 이름 때로는 만 작동되는 check_username.php 코드입니다. 그리고 만약 당신이 데이터베이스에서 사용자 이름을 시도하고 "Username already exists ..."라는 메시지가 나오지 않는다면 일들이 바뀌고 다른 메시지가 나타나면 그 필드가 검증 될 수 없다하더라도, class = "required"의 제품으로 "This field is required"와 같은 jQuery 유효성 검사 minlength 규칙의 결과로 "Username은 (는) 적어도 4 자 이상이어야합니다."라는 메시지가 표시됩니다. 이것에 대한 가장 신비한 것은 특정 사용자 이름이 일치하고 다른 사용자 이름이 일치하지 않는 이유입니다. 일치하는 항목이 발견되었지만 특정 사용자 이름이 코드를 위반하게 만들었습니다. 또한 Chrome에서도 정상적으로 작동합니다. 이 변경
그러나이 코드는 Internet Explorer 8에서도 잘 작동합니다 (원격 유효성 검사 결과 메시지가 나타나기 전에 잠시 시간이 걸리지 만 올바르게 나타납니다). 그래서 위의 문제는 IE 9에있는 것처럼 보입니다. –
좋아, $ (document) .ready (function() {... your code ...}) with : jQuery (function) {... 귀하의 코드 ...}) –