4

だから私はプレイフレームワークを使用しており、1つのフォームを呼び出す複数の送信ボタンを作成しようとしています:

私が持っているのは文字列のリストです。サーバーに戻ってイベントを完了する 2 つのボタンを作成したいと思います。1 つ目は送信、2 つ目はキャンセルです。私がやりたいことは、ソース値を foo select オブジェクトで選択されたものと同じに設定することです。どうすればこれを行うことができますか?フォームから起動された場合でも JavaScript を作成し、その関数内で var を取得してから送信を起動する必要がありますか? 私は play フレームワークと scala に 100% 精通しているわけではないので、新しいメソッドを使用せずにこのコード内でどうにかして取得できるかどうかはわかりません。

@(myList: List[String], theForm: Form[Obj])
@import helper._
@main("myVar Controller") {

<select id="foo">
</select>

<table border="1">
    <tr>
    @for(myVar <- myList) {
        <td>@myVar
        @form(routes.Application.method()) {
        <div id="hiddenForm" style="visibility:hidden">
            <input type="text" name="commandID" id="commandID" value="10" />    //Send Code
            <input type="text" name="source" id="source" value=**"Put selected value of foo here" />**
            <input type="text" name="destination" id="destination" value="@myVar" />
        </div>
        <input type="submit" value="Send" />
        }
        @form(routes.Application.method()) {
        <div id="hiddenForm" style="visibility:hidden">
            <input type="text" name="commandID" id="commandID" value="18" />    //Undo code
            <input type="text" name="source" id="source" value=**"Put selected value of foo here" />**
            <input type="text" name="destination" id="destination" value="@myVar" />
        </div>
        <input type="submit" value="Undo" />
        }
        </td>
    }
    </tr>
</table>

}

4

2 に答える 2

2

まず、html が無効です。最初に、同じ ID を持つ要素がないことを確認する必要があります。

フォームの値を変更するには、javascript を使用する必要があります。スカラーやプレイフレームワークには詳しくありませんが、jQuery を使用できる場合は、次のソリューションをお勧めします。

$("#foo").bind("change", function(){$("#source").val($("#foo").val()));});​

例: http://jsfiddle.net/RubenJonker/a8a8p/5

jQuery の使用が許可されていない場合は、select の onchange イベントに JavaScript を追加する必要があります。

<select onchange="document.getElementById('source').value = this.value">
</select>

例: http://jsfiddle.net/RubenJonker/a8a8p/4

于 2012-06-06T06:30:24.557 に答える
0

他の誰かがこの問題を抱えている場合に備えて、私の問題を解決するために次の方法を使用しました: あなたのコードが問題を解決した理由だったので、Ruup に感謝します

html:

<select id="foo" >
    <option></option>
    <option value="test">test</option>
</select>
<input type="text" value="" name="field" id="field" />​

およびJavaScript:

$(document).ready(function() { 
obj = document.getElementById("foo");
obj.onchange = function()
{
     var elements = document.getElementsByName('field');
     for (i=0;i<elements.length;i++)
     {
         elements[i].value = $('#foo').val();
                 }
 }; });
于 2012-06-06T23:45:00.080 に答える