形式隐藏场地替换

时间:2012-04-24 15:17:08

标签: javascript forms expressionengine hidden-field safecracker

我正在使用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

3 个答案:

答案 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