我必须使用重音编码特定注册商的域名(IDNA).
我有一个简单的输入字段:
<input type="text" id="idndomain" name="sld[0]" size="40" />
Run Code Online (Sandbox Code Playgroud)
我的jQuery函数
$(document).ready(function() {
$('#domainform').submit(function(){
$.getJSON("includes/idna/idna.php", {
domain: $("input#idndomain").val()
}, function(data){
$("div#result").html($('<b>' + data.encoded + '</b>'));
$('#idndomain').val(data.encoded);
});
return true;
});
});
Run Code Online (Sandbox Code Playgroud)
所以我正在向idna.php发送一个查询,该查询对域名进行编码并返回一个json数组:
{"encoded":"xn--caf-dma.ch"}
Run Code Online (Sandbox Code Playgroud)
问题是表单是使用'original'值提交的,而不是json查询返回的值.
问题是:如何先"等待"json结果,用编码的字符串替换输入字段并提交?
尝试绑定到提交按钮而不是表单,并submit在json调用的成功回调中显式调用表单的处理程序:
$(document).ready(function() {
$('#submitButton').click(function(){
// maybe disable the submit button once clicked?
$(this).attr('disabled', true);
$.getJSON("includes/idna/idna.php", {
domain: $("input#idndomain").val()
}, function(data){
$("div#result").html($('<b>' + data.encoded + '</b>'));
$('#idndomain').val(data.encoded);
// now submit the form
$('#domainform').submit();
});
return false;
});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5555 次 |
| 最近记录: |