我正在使用Expression Engine的Safecracker模块构建表单。
其中一个必填字段是Title,它将成为EE频道条目的标题。
我想要做的是将标题字段设置为组合的名字和姓氏字段。
我从这开始:
<form method="POST" action="#">
<input id="student_first_name" type="text" size="30" name="student_first_name">
<br>
<input id="student_last_name" type="text" size="30" name="student_last_name">
<br><br>
<input type="text" name="title" value=""/>
</form>
然后补充说:
$(function() {
$('#student_first_name').keyup(function() {
var snamef = $(this);
});
$('#student_last_name').keyup(function() {
var snamel = $(this);
});
$("input[name='title']").val(snamel + " " + snamef);
return false;
});
我无法让它工作,但是:http://jsfiddle.net/tylonius/CY5zJ/4/
我错过了一步(或者只是做错了吗?)?
另外,我可能工作太辛苦了,Safecracker已经内置了这个功能;类似于它的实时UrlTitle();功能
感谢任何帮助。
谢谢,
TY
答案 0 :(得分:3)
如果我理解你的问题,试试这个:
首先在所需的输入元素上设置一个id,如下所示:
<input type="text" name="title" id="student_title" value=""/>
然后:
$(function() {
changeFunction = function() {
$('#student_title').val($('#student_first_name').val() + ' ' + $("#student_last_name").val());
}
$('#student_first_name').keyup(changeFunction)
$('#student_last_name').keyup(changeFunction);
});
答案 1 :(得分:2)
更好的是,完全避免使用javascript,只使用SafeCracker的dynamic_title parameter。
dynamic_title="[student_first_name] [student_last_name]"
答案 2 :(得分:1)
user1236048为您提供最佳解决方案,但以下是您的代码的工作版本
$(function() {
var snamef;
var snamel;
$('#student_first_name').keyup(function() {
snamef = $(this).val();
$("input[name='title']").val(snamel + " " + snamef);
});
$('#student_last_name').keyup(function() {
snamel = $(this).val();
$("input[name='title']").val(snamel + " " + snamef);
});
return false;
});
和here是工作的jsfiddle