0

onClickイベントの一部として、クリックされた行の後続の兄弟の非表示の「シーケンス」入力のそれぞれの値が1つ減ります。

$('#variants_' + product + ' .sequence')
    .filter(function(){
        return parseInt(this.value, 10) > sequence;
    })
    .val(function(index, value){
        return value - 1;
    });

私が変更しようとしている入力は、次のようになります。

<input type="hidden" name="v_sequence_6" id="v_sequence_6" value="function (index, value){
                    return value - 1;
                    }" class="sequence">

.val()の関数パラメーターを文字列に変換せずに使用するにはどうすればよいですか?

関連する機能の残りはここに編集します

function deleteVariant(row, product) {
var x = /x/
var sequence = $('#variantRow_' + row + ' .sequence').val();
if (! x.test(row) ){
    $('#variants_' + product).closest('#variants').append("<div class='grayover'><div class='ajaxLoaderContainer'><div class='ajaxLoader'><img src='images/ajax-loader.gif' /></div></div></div>");

    $.post('includes/_e-learning_ajax.php', { 'mode': 'deleteVar', 'variant': row }, function(data){
        if (data == 'success'){
            $('#variants_' + product + ' .sequence')
                .filter(function(){
                    return parseInt(this.value, 10) > sequence;
                    })
                .val(function(index, value){
                    return value - 1;
                    });
            $('#variantRow_' + row).remove();
            coursesReady();
        } else {
            alert(data);
        }
        $('.grayover').remove();
    });

} else {
    $('#variantRow_' + row).remove();
}
}
4

1 に答える 1

0

問題は、jQuery のバージョンが 1.4 未満であるように思われます。これは、関数を渡すバージョンのvalメソッドが導入されたときです (コメントの会話から判断したこと)。メソッドは渡された関数をval呼び出し、それを入力の値として完全に出力していたので、これは理にかなっています。toString

これはここに表示できます: http://jsfiddle.net/Hhk7T/

于 2012-12-11T04:27:18.460 に答える