基本上我试图读取原始字段值,但在某些情况下不能如下所示。
考虑一个简单的电子邮件表单字段:
<input type="email" name="username" id="username" />
当我输入常规电子邮件时,Javascript可以按预期读取值。当我输入所有中文字符时,Javascript也可以按预期读取值。 但是,当我混合使用拉丁文和中文字符时,Javascript似乎会转换为某种代码字符集。
测试示例:
test@test.com //returns test@test.com
暮捕徹@暮捕徹.暮捕徹 //returns 暮捕徹@暮捕徹.暮捕徹
test@暮捕徹.com //returns test@xn--r5t43fptd.com
test@test.暮捕徹 //returns test@test.xn--r5t43fptd
测试代码:
function login(){
var username=document.querySelector('#username').value;
var resultDiv=document.createElement('DIV');
resultDiv.innerText = username;
document.querySelector('body').appendChild(resultDiv);
return false;
}
&#13;
<form onsubmit="javascript: return false;">
<label for="username">Username</label>
<input type="email" name="username" id="username" />
<button onclick="login();">
Login
</button>
</form>
&#13;
我试过的事情:
<head>
:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<input type="email" name="username" id="username" accept-charset="utf-8" />