首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在提交前更改输入字段

在提交前更改输入字段
EN

Stack Overflow用户
提问于 2009-11-02 19:02:52
回答 1查看 5.7K关注 0票数 5

我必须使用重音对特定注册商的域名(IDNA)进行编码。

我有一个简单的输入字段:

代码语言:javascript
复制
<input type="text" id="idndomain" name="sld[0]" size="40" />

我的jQuery函数

代码语言:javascript
复制
$(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;
    });
}); 

因此,我向idna.php发送了一个查询,该查询对域名进行编码并返回一个json数组:

代码语言:javascript
复制
{"encoded":"xn--caf-dma.ch"}

问题是表单是用“原始”值提交的,而不是json查询返回的值。

问题是:如何‘等待’json结果首先,用编码的字符串替换输入字段,然后提交?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-11-02 19:12:13

尝试绑定到submit按钮而不是表单,并在json调用的成功回调中显式调用表单的submit处理程序:

代码语言:javascript
复制
    $(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;
            });
    });
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1660619

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档