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 的值都传递正确。那么我怎样才能传递在文本框中输入的内容呢?谢谢你


编辑:

<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>
4

4 回答 4

0

看起来您的输入的 ID 为“Comments”,但您正尝试在通话中使用“CommentId”。

于 2013-03-12T11:58:56.653 回答
0

您使用$(CommentBoxId).val()的是错误的。

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

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

$('#'+CommentBoxId).val()Functions.CommentBox

于 2013-03-12T11:31:59.880 回答
0

您可以尝试像这样重写您的代码:

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

**更新**

在中继器内部,文本框 id 应该与SubmitButton'sCommentBoxId参数相同:

<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>
于 2013-03-12T11:32:54.877 回答
0

此行没有任何效果,因为您没有存储val()调用的结果

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

对第四个参数的调用Functions.CommentBox将为空值,因为您没有在 id 前加上哈希值。

尝试这个:

var commentBoxIdVal = $('#'+CommentBoxId).val();
Functions.CommentBox(id, CompanyId, WorkId, commentBoxIdVal, Test);  
于 2013-03-12T11:33:24.280 回答