Значение HTML, переданное веб-сервису, показывает NULL

#javascript #asp.net #ajax #web-services

#javascript #asp.net #ajax #веб-сервисы

Вопрос:

У меня есть веб-сервер AJAX, который запускает SQL statment, который работает.

Я пытаюсь взять значение HTML со своей веб-страницы и использовать его в качестве дополнительной переменной в моем запросе.

Вот как я фиксирую эту переменную на своей веб-странице.

         <div style="margin-left:0px">
            <label>Enter Number here: </label><br>
            <input type= text id="demo">
        </div>
 

… и это мой вызов веб-службы.

     //Generate code
    function Generate() {

        var myGrid = $('#jqquotes'),
            selectedRowId = myGrid.jqGrid('getGridParam', 'selrow');
            docid = myGrid.jqGrid('getCell', selectedRowId, 'docid');


        document.getElementById("demo").innerHTML = document.getElementById("demo").value;

        alert(document.getElementById("demo").value);

        var quotenum = document.getElementById("demo".value);


        if (confirm('Are you sure you want to generate a quote?')) {
            $.ajax({
                url: '/WebService1.asmx/Generate',
                dataType: "json",
                contentType: "application/json; charset=utf-8",
                type: "GET",
                data: { docid: docid, quotenum: JSON.stringify(quotenum) }, 
                success: function () {

                    //Get selected
                    var grid = $("#jqquotes");
                    var rowKey = grid.jqGrid('getGridParam', "selrow");

                    //Refresh grid
                    $('#jqquotes').trigger('reloadGrid');

                    //Set Selected
                    setTimeout(function () {
                        jQuery('#jqquotes').jqGrid('setSelection', rowKey);
                    }, 200);


                }
            });

        } else {
            return false
        }
    }
 

В окне предупреждения правильно отображается значение HTML из идентификатора поля «Demo»

Но веб-сервис завершается с ошибкой, сообщая, что значение равно NULL, ответ JSON: Сообщение «Параметризованный запрос»(@docid nvarchar(5),@quotenum nvarchar(4000)) ОБНОВЛЯЕТ [dbo].[quote’ ожидает параметр ‘@quotenum’, который не был указан «.

… и URL-адрес GET показывает значение как NULL

https://localhost:44338/WebService1.asmx/Generate ?docid=10146amp;quotenum=null

Любая помощь с благодарностью.

Ответ №1:

Я думаю, что проблема здесь:

 var quotenum = document.getElementById("demo".value);
 

Это должно быть

 var quotenum = document.getElementById("demo").value;
 

как и в строке над ним.