如何用jQuery中的两个其他输入的值替换输入的两个部分?

时间:2012-02-11 20:32:29

标签: javascript jquery

我对此问题的回答(非常令人满意):

How to replace part of one text field with a value from another text field in jQuery?

这回答了如何更新输入中链接中的subid。

我试图通过从第二个输入更新“mydomain.com”来扩展它:

http://jsbin.com/ojosag/3/edit

一旦我尝试更改{mydomain.com},我就会失去{subid}部分。任何人都可以让我摆脱痛苦吗?

2 个答案:

答案 0 :(得分:1)

扩展Zero Distraction为您的原始问题所建议的内容,以下内容应该可以解决问题:

$(document).ready(function(){

    var valueTemplate = "http://{subdomain}.{domain}.com";
    var defaultSubDomain = "subdomain";
    var defaultDomain = "mydomain";

    var alphaOne = $("input#alpha");
    var alphaTwo = $("input#alphatwo");

    alphaOne.add(alphaTwo).keyup(function(){

        var value = (alphaOne.val()) ? alphaOne.val() : defaultSubDomain;
        var valueTwo = (alphaTwo.val()) ? alphaTwo.val() : defaultDomain;

        $("input#bravo").val(valueTemplate.replace("{subdomain}", value).replace("{domain}", valueTwo));

    });

});

当您开始输入第一个或第二个输入时,将更新第三个或第二个输入的值。如果其中一个字段为空,则会使用defaultSubDomaindefaultDomain变量的值。

答案 1 :(得分:0)

这是一个解决方案。可能会更有效率。

$(document).ready(function(){
    var domainstr="http://subdomain.mydomain.com";
    $("input#alpha,input#alphatwo").keyup(function(){
        var alphaVal = $("input#alpha").val();

        var retVal = domainstr;
        if(alphaVal !== '')
          retVal = domainstr.replace("subdomain",alphaVal);

        var alphaTwoVal = $("input#alphatwo").val();
        if(alphaTwoVal !== '')
          retVal = retVal.replace("mydomain",alphaTwoVal);

        $("input#bravo").val(retVal);
     });
});