如何从javascript函数中识别submit()以及为什么它不起作用

时间:2012-12-02 12:25:47

标签: javascript asp.net

我有一个用户列表,在表格的每一行末尾我添加了两个链接(“href”):一个用于“更新”用户,另一个用于“删除”用户。因此,为了启用我添加了对javascript函数的调用,该函数捕获用户的ID并将另一个字段设置为“true”并将这些值插入到我之前创建的某个表单(只有两个“隐藏”字段的表单),然后函数激活了submit()操作到服务器部分(asp.net代码)。

我检查了一下,submit()操作正常(用respons.write(“-----”)检查......)

但我知道如何通过询问提交按钮的值来识别IsPost中的提交表单按钮(例如:if(Request.Form [“ExpertButton”] ==“delete”){..这里的一些代码....})

但是当我用javascript激活submit()时,我怎么能识别帖子?我尝试了隐藏字段的值,但它没有捕获这个并且它对if语句有所了解....

我发现调试的另一个问题是浏览器(IE9)在函数时抛出错误 submit()发生......

用户代码列表:

foreach(var row in db.Query(displayExperts,nameOfExpert))
                {
                <tr>
                    <td class="dispExpertActScreen">@row.ExpertID</td>
                    <td class="dispExpertActScreen">@row.name</td>
                    <td class="dispExpertActScreen">@row.password</td>
                    <td class="dispExpertActScreen">@row.allowBonds</td>
                    <td class="dispExpertActScreen">@row.allowStocks</td>
                    <td class="dispExpertActScreen">@row.allowExchangeTraded</td>
                    <td class="dispExpertActScreen">@row.allowMutualFund</td>
                     <td class="dispExpertActScreen"><a href="#" onclick="expertToDelete('@row.ExpertID') ;return false;" style="color: #b04e4e">update</a></td>
                    <td class="dispExpertActScreen"><a href="#" onclick="expertToDelete('@row.ExpertID') ;return false;" style="color: #b04e4e">delete</a></td>
                </tr>
                }

形式:

<form method="post" name="deleteExpert" style="font-size: medium; margin-top: 10%" dir="rtl">
    <input type="hidden" name="expertID" id="expertID" value="">
    <input type="hidden" name="txtJavascriptMode" id="txtJavascriptMode" value="">
</form> 

功能:

<script>

    function expertToDelete(expertID) {

        document.getElementById('expertID').value = expertID;
        document.getElementById('txtJavascriptMode').value = 'true';
        document.getElementById('deleteExpert').submit();
    }

</script>

asp.net代码:

@{
    var db = Database.Open("MyProjectSite");
    var display="no";
    var displayExperts="";
    var nameOfExpert="";
    var category="";
     if(IsPost)
    {
        if(Request.Form["ExpertButton"]== "search")// this is by button!!!
        {
             some code.....

        }

        Response.Write("----");
         if(Request.Form["txtJavascriptMode"] == "true")
         {
            var id=Request.Form["expertID"];
            var deleteQuery="DELETE FROM InvestmanExperts WHERE ExpertID=@0";
            db.Execute(deleteQuery,id);
         }
    }
    db.Close();
}

另一个奇怪的事情就是当我把这句话放进去时:

Response.Write("----"+Request.Form["txtJavascriptMode"]);

之前:

if(Request.Form["txtJavascriptMode"] == "true");

网站缩进看起来很糟糕但是删除行的用户工作正常,为什么?

感谢...

1 个答案:

答案 0 :(得分:0)

隐藏的字段应该可以正常工作。尝试将ID deleteExpert添加到表单中。