0

ExpressionEngineのSafecrackerモジュールを使用してフォームを作成しています。

必須フィールドの1つはタイトルです。これは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

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 に答える