0

私がやろうとしているのは、以前どこかで見たフォーム操作の経験を再現することです...

「テキスト」をクリックすると、ユーザーがテキストを編集するためのテキスト フィールドになります。

ラベル: テキスト (クリック) ラベル: 入力[テキスト]. それから blah.change(){ submit };

$('#basicinfo div').click(function(){
    $('#basicinfo select').hide();
    $('#basicinfo div').show();
    $(this).hide();
    $(this).siblings('select').show();
});
$('#basicinfo select').blur(function(){
    $('#basicinfo select').hide();
    $('#basicinfo div').show();
});
$('#basicinfo select').change(function(){
    $(this).siblings('div').html(***$(this).text()***);
    $('#basicinfo').submit();
});

<form id="basicinfo">
    <label>Gender</label> <div>Male</div>
    <select name="1">
        <option value="1">Male</option>
        <option value="2">Female</option>
    </select>
    <label>Age</label> <div>23years</div>
    <select name="2">
        <option value="21">21 years</option>
        <option value="22">22 years</option>
        <option value="23">23 years</option>
    </select>
</form>

.val() または .text() を使用しても機能しませんでした。うまくいけば、誰かが私が必要なものを知っているでしょう:)

PS。$(this+" option:selected").text() を試しましたが、うまくいきませんでした。

4

3 に答える 3

2

PS。$(this+" option:selected").text() を試しましたが、うまくいきませんでした

this文字列ではなくオブジェクトです。試す

$(this).find('option:selected').text()

また、さまざまなブラウザーでぼかしイベントがトリガーされるかどうか、いつトリガーされるかはわかりませんが、一貫性がないと思います。

個人的には、「確認」ボタンと「キャンセル」ボタンを別々に使用して、ユーザーがいつ保存するかを決定できるようにします。

于 2012-07-31T12:04:11.920 に答える
1

これを試してください - http://jsfiddle.net/tQxmN/1/

$('#basicinfo select').on("change", function(){
    alert( $(this).find("option:selected").text() );
});​
于 2012-07-31T12:02:51.827 に答える
1
$('#basicinfo select').change(function()
{
    var optionValue = $(this).find("option:selected").text();

    $(this).siblings('div').html( optionValue );

    $('#basicinfo').submit();
});
于 2012-07-31T12:04:03.853 に答える