我正在asp.net
开发一个评论页面,这是我的页面:
<form action="#">
<p><textarea id="textArea" rows="5" cols="30"></textarea></p>
<input type="submit" value="Submit" />
</form>
<p>Add some comments to the page</p>
这是我的javascript代码:
window.onload = initAll;
function initAll() {
document.getElementsByTagName("form")[0].onsubmit = addNode;
}
function addNode() {
var inText = document.getElementById("textArea").value;
var newText = document.createTextNode(inText);
var newGraf = document.createElement("p");
newGraf.appendChild(newText);
var docBody = document.getElementsByTagName("body")[0];
docBody.appendChild(newGraf);
return false;
}
在此之前,一切都很好,但我希望当用户点击submit
按钮时,该按钮会触发另一个操作,将注释保存在数据库中。
我该怎么做?
答案 0 :(得分:3)
为什么你没有一个包装器仍然使它成为一个功能?
addNode
可能有代码可以根据表单中的内容进行操作吗?
您可以拥有一个包含addNode
和addComment
。
例如:
function handleSubmit()
{
addNode();
addComment();
return false;
}
编辑:由于您要调用服务器代码,因此您有几个选项。您可以通过ajax完成所有操作,您只需要实现addComment
函数来调用服务器端事件。如果您需要帮助,请参阅此文章:
http://www.dexign.net/post/2008/07/16/jQuery-To-Call-ASPNET-Page-Methods-and-Web-Services.aspx
最简单的方法是将按钮更改为ASP.NET按钮,然后实现按钮单击事件,该事件将调用服务器端方法,尽管这会导致整页刷新。
两者的混合,很容易实现,将使用UpdatePanel
。当您单击按钮时,您将获得AJAX解决方案的外观和感觉,但只需知道如何执行所有服务器端代码并让UpdatePanel
处理所有AJAX工作。这个方法比只做一个原始的ajax调用稍微重一点,但它要简单得多。
您可以在UpdatePanels
上阅读:http://msdn.microsoft.com/en-us/library/bb399001.aspx
答案 1 :(得分:1)
使用asp:Button,而不是使用HTML输入标记,如下所示:
<asp:Button ID="btnSubmit" runat="server" OnClick="btnSubmit_Click" />
这就是说,只要点击它就使用一个调用“btnSubmit_Click”方法的Button,并在服务器上运行(而不是在客户机上)。
然后在您的代码隐藏中(您确实有代码隐藏,对吗?例如,nameOfPage.aspx.cs),您可以添加上述btnSubmit_Click方法:
protected void btnSubmit_Click(object sender, System.EventArgs e) {
// interact with database here.
}