0

我正在使用 Expression Engine 的 Safecracker 模块构建一个表单。

必填字段之一是 Title,它成为 EE 频道条目的标题。

我想做的是将 Title 字段设置为组合的名字和姓氏字段。

我从这个开始:

<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(); 功能?

任何帮助表示赞赏。

谢谢,

4

3 回答 3

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);   
});
于 2012-04-24T15:30:32.203 回答
2

更好的是,完全避免使用 javascript,而只使用 SafeCracker 的dynamic_title参数

dynamic_title="[student_first_name] [student_last_name]"

于 2012-04-24T16:26:40.850 回答
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;
});

是工作的jsfiddle

于 2012-04-24T15:39:50.090 回答