2013-03-12 5 views
3

Пользователь вводит данные в поле комментариев и нажимает соответствующую соответствующую заявку btn. Я пытаюсь передать id, CompanyId, WorkId, CommentBoxId, чтобы закодировать код для обновления записи. Пока все работает нормально, но я также хочу передать данные, введенные в поле комментариев.

JavaScript runtime error: Sys.Net.WebServiceFailedException: The server method 'CommentBox' failed with the following error: System.InvalidOperationException-- Invalid web service call, missing value for parameter: 'CommentBoxContents'. 

Значения id, CompanyId, WorkId и CommentBoxId переданы правильно. так как я могу передать то, что введено в текстовое поле? спасибо


EDIT:

<script type="text/javascript" language="javascript"> 
    var commentBoxData 
    function SubmitButton(id, CompanyId, WorkId, CommentBoxId) 
    { 
     var commentBoxData = $('#'+CommentBoxId).val(); 
     Functions.CommentBox(id, CompanyId, WorkId, commentBoxData); 
    } 
</script> 

// Внутри ретранслятора:

<th style="width:200px;"> 
    <input id="Comments" name='<%# GetIdOfCommentBox((int)Eval("id")) %>' 
      type="text" runat="server" value='<%# Bind("Comment") %>' /> 
    <input id="SubmitComments" type="button" 
      onclick="SubmitButton('<%# Eval("id") %>','<%# Eval("CompanyId") %>', 
         '<%# Eval("WorkId") %>','<%# Eval("CommentId") %>');" /> 
</th> 
+0

Вы пытались отладить параметры и убедиться, что они того, чего вы ожидаете? – Paul

+0

может показать нам, что вы проходите в> id, CompanyId, WorkId, CommentBoxId –

+0

Возможно, вам потребуется опубликовать еще несколько ваших кодов, e, g, html и кода, который вызывает SubmitButton. – SteveP

ответ

0

Вы используете $(CommentBoxId).val(), что неправильно.

 function SubmitButton(id, CompanyId, WorkId, CommentBoxId) 
    { 
     $('#'+CommentBoxId).val(); 

     Functions.CommentBox(id, CompanyId, WorkId, $('#'+CommentBoxId).val(), Test); 
    } 

используйте $('#'+CommentBoxId).val() в Functions.CommentBox

+0

Что? Я использовал $ ('#' + CommentBoxId) .val(); – John

+0

, если это не работает, dosnt означает, что вы должны уйти с дороги. Это правильный syntex –

+2

Не в вашем примере кода в вашем сообщении. – SteveP

0

Вы можете попробовать переписывание кода, как это:

function SubmitButton(id, CompanyId, WorkId, CommentBoxId) 
{ 
    var commentBoxId = $('#'+ CommentBoxId).val(); 
    Functions.CommentBox(id, CompanyId, WorkId, commentBoxId, Test); 
} 

** UPDATE **

И внутри повторителя , идентификатор текстового поля должен совпадать с параметром SubmitButtonCommentBoxId:

<th style="width:200px;"> 
    <input id="CommentId" name='<%# GetIdOfCommentBox((int)Eval("id")) %>' 
      type="text" runat="server" value='<%# Bind("Comment") %>' /> 
    <input id="SubmitComments" type="button" 
      onclick="SubmitButton('<%# Eval("id") %>','<%# Eval("CompanyId") %>', 
         '<%# Eval("WorkId") %>','<%# Eval("CommentId") %>');" /> 
</th> 
+0

спасибо за ответ, пожалуйста, см. Править оригинальное сообщение – John

0

Эта строка ничего не делает эффективным, потому что вы не хранить результат val() вызова

$('#'+CommentBoxId).val(); 

Вызов Functions.CommentBox будет иметь нулевое значение для четвертого параметра, потому что вы не предваряя идентификатор с хешем.

Попробуйте это:

var commentBoxIdVal = $('#'+CommentBoxId).val(); 
Functions.CommentBox(id, CompanyId, WorkId, commentBoxIdVal, Test); 
+0

спасибо, что ответ, см. Редактировать оригинальное сообщение – John

0

Похоже, ваш вход имеет идентификатор «Комментарии», но вы пытаетесь использовать «CommentID» в вызове.

Смежные вопросы