1. ホーム
  2. jquery

[解決済み] jQuery - 不正な呼び出し

2022-01-29 04:09:01

質問

jQuery v1.7.2

この関数があるのですが、実行中に次のようなエラーが発生します。

Uncaught TypeError: Illegal invocation

ここに関数があります。

$('form[name="twp-tool-distance-form"]').on('submit', function(e) {
    e.preventDefault();

    var from = $('form[name="twp-tool-distance-form"] input[name="from"]');
    var to = $('form[name="twp-tool-distance-form"] input[name="to"]');
    var unit = $('form[name="twp-tool-distance-form"] input[name="unit"]');
    var speed = game.unit.speed($(unit).val());

    if (!/^\d{3}\|\d{3}$/.test($(from).val()))
    {
        $(from).css('border-color', 'red');
        return false;
    }

    if (!/^\d{3}\|\d{3}$/.test($(to).val()))
    {
        $(to).css('border-color', 'red');
        return false;
    }

    var data = {
        from : from,
        to : to,
        speed : speed
    };

    $.ajax({
        url : base_url+'index.php',
        type: 'POST',
        dataType: 'json',
        data: data,
        cache : false
    }).done(function(response) {
        alert(response);
    });

    return false;
});

を削除すると data ajaxの呼び出しから、それは動作します...何か提案は?

ありがとうございます。

解決方法は?

データ値として文字列が必要なのでは?おそらく、jQueryの内部で、To & Fromオブジェクトを正しくエンコード/シリアライズしていないことが原因だと思われます。

試してみてください。

var data = {
    from : from.val(),
    to : to.val(),
    speed : speed
};

行にも注目してください。

$(from).css(...
$(to).css(

To & From はすでに jQuery オブジェクトなので、jQuery ラッパーは必要ありません。