我有一个动态的城市列表,每个国家都有自己的动态城市列表。
现在我正在使用Javascript检查邮政编码列,我正在尝试创建一个将执行下一次搜索的功能,当我选择Netherlands
时,它允许我在邮政编码中使用其他字符,但直到现在我没有看到任何成功。
有人能告诉我我做错了吗?
HTML:
<tr>
<td>
<p class="RegTextLine">Your Postalcode </p>
<input type="text" name="postalcode" id="postalcode" class="columnstyle" placeholder="Enter your postal code" onchange="postcode('postalcode','Country')"/>
</td>
</tr>
使用Javascript:
function postcode(code, holland) {
var code = document.getElementById(code);
var holland = document.getElementById(holland);
var dcount=0;
var charcount=0;
var jcount=0;
if (holland.value == "netherland") {
for (var i = 0; i <= code.length; i++){
if (code.value.charAt(i) >= '0' && code.value.charAt(i) <= '9')
dcount++;
else if (code.value.charAt(i) >= 'a' && code.value.charAt(i) <= 'z')
charcount++;
else if (code.value.charAt(i) >= 'A' && code.value.charAt(i) <= 'Z')
charcount++;
else
jcount++;
}
if (jcount!=0)
alert("This symbol is not allowed");
else
alert("holland is good");
}
if (holland.value != "netherland") {
for (var i = 0; i <= code.length; i++) {
if (code.value.charAt(i) >= '0' && code.value.charAt(i) <= '9')
dcount++;
else
jcount++;
}
if (jcount!=0)
alert("use only digits");
else
alert("regular postalcode is work fine");
}
}
答案 0 :(得分:0)
这是你的代码:
<input type="text" name="postalcode" class="columnstyle" placeholder="Enter your postal code" onchange="postalcode(this.id,'Country')"/>
这是错误的,因为函数邮政编码中的'Country'参数不清楚。这个输入类型是文本,因此获取this.id也是无效的,而这是我推荐的解决方案:
1)选择一个选项让用户选择国家:
<label>choose your country</label>
<select name="country onchange="userCountry(this.value)">
<option value="country_a">a</option>
<option value="country_b">b</option>
</select>
2)为用户创建输入用其国家模式输入邮政编码:
2a)创建功能创建邮政编码模式:
function userCountry(country) {
switch (country) {
case a:
limitLength = 6;
// you could set up your regex for input validation
regExp = /\d{3,6}/;
break;
case b:
limitLength = 8;
break;
// etc.
};
document.getElementById("postalCode").setAttribute("maxlength",limitLength);
};
// here is the input in html for user to input the postal code
<input type="text" name="user_postalcode" id="postalCode" onkeyup="validationCode()"/>
// validation the input, only necessary if you have regexp
function validationCode() {
var invalidCode = /[^\d]+/g; // wrong pattern you make your own, in this case, all characters beside digital character will be considered invalid.
if (this.value.match(regExp) == null) { // check if it's wrong
this.value.replace(invalidCode,""); // replace all invalid code with space, so it will remain only valid code
};
};
我希望这会有所帮助,我试图理解你的问题,这是我从你的问题中理解的内容。