【问题标题】:Change DNN Form into normal GET form将 DNN 表单更改为普通的 GET 表单
【发布时间】:2012-05-03 13:44:06
【问题描述】:

我正在对带有自定义皮肤的 Dot Net Nuke 网站进行一些更改。我发现皮肤文件的标题位于'Default.aspx'here

表单有一些非常奇怪的行为。我不得不禁用回车按钮,因为在表单中按下会导致网页转到“/HOME.aspx”,但是该操作从未在 Default.aspx 中指定。

代码如下。

    <dnn:Form id="Form" runat="server" ENCTYPE="multipart/form-data" >
    <asp:Label ID="SkinError" runat="server" CssClass="NormalRed" Visible="False"></asp:Label>
    <asp:PlaceHolder ID="SkinPlaceHolder" runat="server" />
    <input id="ScrollTop" runat="server" name="ScrollTop" type="hidden" />
    <input id="__dnnVariable" runat="server" name="__dnnVariable" type="hidden" />
</dnn:Form>

处理后的表单在浏览器中显示为。

<form name="Form" method="post" action="/HOME.aspx" onsubmit="javascript:return WebForm_OnSubmit();" id="Form" enctype="multipart/form-data">

我希望代码按原样显示。

<form name="Form" method="get" action="/SearchResults.aspx"  id="Form">

我尝试使用 html 直接删除 dnn 代码,但删除 dnn 表单会导致网站崩溃。


编辑

可以在http://www.ontariosheep.org 看到我正在尝试做的事情 请注意,如果您按下按钮搜索有效,但按下回车会导致页面刷新。

【问题讨论】:

    标签: asp.net forms search dotnetnuke


    【解决方案1】:

    您可以使用一些 Javascript 来执行此操作:

    jQuery('#SearchBox').keypress(function(e){
       if(e.which == 13){
           e.preventDefault();CallSearchPage('http://www.ontariosheep.org/SearchResults.aspx');
       }
    });
    

    你需要把它放在脚本标签和一个 jQuery 文档准备区......就像

    &lt;script&gt; jQuery(document).ready(function(){

    //code above here

    }); &lt;/script&gt;

    【讨论】:

    • 已更新网页代码,现在仍然有效。已按书面方式尝试,还尝试将#SearchBox 切换为#Form。没有效果。
    • PhillipK,我在上面的代码中有错字。在您页面上的代码中 if(e.which == 13 需要 a ) 之后。它应该是#SearchBox,您的目标是 SearchBox 元素 id
    【解决方案2】:

    在 DNN 中更改表单的行为并不是一件容易的事。 DNN 使用 ASP.NET Web 窗体模型,因此页面的操作始终是当前页面。

    如果您想自定义此操作,唯一真正的方法是在特定页面上通过 JavaScript 修改表单操作,但请注意,在单击按钮或类似触发器之前执行此操作将破坏页面上所有需要回发到服务器。

    你想完成什么?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-21
      • 2019-08-29
      • 1970-01-01
      • 1970-01-01
      • 2019-01-02
      • 1970-01-01
      • 2011-10-16
      • 1970-01-01
      相关资源
      最近更新 更多