我对此问题的回答(非常令人满意):
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}部分。任何人都可以让我摆脱痛苦吗?
答案 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));
});
});
当您开始输入第一个或第二个输入时,将更新第三个或第二个输入的值。如果其中一个字段为空,则会使用defaultSubDomain
和defaultDomain
变量的值。
答案 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);
});
});