简体   繁体   中英

Javascript Circular reference exception

I am trying to update the description field for a record in a database using a JQuery.change for the input on the view. However, after wiring up my clientside code I am now getting a circular reference exception when trying to stringify the JSON in order to make the ajax call. Any help would be greatly appreciated.

Here's the code:

 <div class="divTableCell">
                    <label for="CheckRunDescription" id="checkRunDescriptionLabel">Description:</label>
                    <input type="text" id="CheckRunDescription" style="width: 270px;" />

                </div>

The JQuery:

$('#CheckRunDescription')
    .change(function() {
        $(this).data("old", $(this).data("new") || "");
        var newDetails = $(this).data("new", $(this).val());
        updateCheckRunDetails(newDetails);
    });


function updateCheckRunDetails(newDetails) {
var checkRunID = $('#checkRunID').val();
var js = JSON.stringify({ checkRunDetails:newDetails, checkRunID:checkRunID });
$.ajax({
    type: "POST",
    contentType: "application/json; charset=utf-8",
    url: './PayInvoicesWS.asmx/UpdateCheckRunDetails',
    data: js,
    dataType: "json",
    success: function (data) {

    },
    error: function (data) {

    }
});
}

You are trying to stringify a jQuery object.

var newDetails = $(this).data("new", $(this).val());// returns `$(this)`

I am guessing you want the input value passed to the function

Try

$('#CheckRunDescription')
    .change(function() {
        var newDetails  = $(this).val();
        $(this).data("old", $(this).data("new") || "").data("new", newDetails );          
        updateCheckRunDetails(newDetails);
    });

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM