2013-02-20 82 views
2

我有1场将被用于用户名,另一个将用于用户的URL基于另一个字段填充输入?

因此,如果用户键入john smith到输入名称,我想自动填充URL输入用john-smith因为url最终会变成/personal-trainer-directory/john-smith

我该如何自动执行此操作,以便用户不必填写url字段?

下面是一个例子,但有一些ExpressionEngine代码,这就是为什么有大括号,但我想这是更相关的代码,而不是CMS所以这张贴在这里。

这是我目前有:

<div class="formsection clearfix"> 
<label for="title">Name</label> 
<span class="directions">The name you want to be displayed in your listing.</span> 
<input type="text" name="title" id="title" value="{title}" size="50" maxlength="100"> 
</div> 

<div class="formsection clearfix"> 
<label for="url_title">URL Title</label> 
<span class="directions">Put a dash between first and last name. example: "john-smith"</span> 
<input type="text" name="url_title" id="url_title" value="{url_title}" maxlength="75" size="50"> 
</div> 

回答

3
$("#title").change(function() { 
    $('#url_title').val('/personal-trainer-directory/'+$(this).val().toLowerCase().replace(/ +/g, '-').trim()); 
}); 

jsFiddle example

+0

谢谢!这使我最接近!我只是想让名字显示出来,而这个部分是正确的:'$('#url_title')。val(''+ $(this).val()。toLowerCase()。replace(/ +/g,' - ')。trim());'? – 2013-02-21 17:17:03

+0

是的,你可以摆脱'''+'部分。 – j08691 2013-02-21 17:18:07

+0

谢谢!效果很好 – 2013-02-21 20:52:57

1

你可以做这样的事情

$(function(){ 
    $("#title").blur(function(){ 
     $("#url_title").val('/personal-trainer-directory/' + $(this).val()); 
    }); 
}); 

jsFiddle

,或者如果你想让它在您键入填充

$(function(){ 
    $("#title").keyup(function(){ 
     $("#url_title").val('/personal-trainer-directory/' + $(this).val()); 
    }); 

}); jsFiddle

+0

@RuneFS这是为什么?见http://jsfiddle.net/pmatseykanets/6Tzvq/ – peterm 2013-02-20 18:27:50

+0

因为我需要眼镜:D对不起,误读了代码 – 2013-02-20 18:57:06

相关问题