javascript 在 dotnetnuke 中不起作用

标签 javascript asp.net dotnetnuke

我有一个 JavaScript

<script type="text/javascript" language="JavaScript">
function getFaq(selectedFaq)
{
 document.frmFaqs.S1.value = selectedFaq;
}

ascx 是

    <script type="text/javascript" language="JavaScript">
    alert("asds");

    function getFaq(selectedFaq)
    {
   <asp:Literal id="litScript" runat="server" />
    }
    </script>
    </head>
   <body> 
   <form action="" name="frmFaqs">        
   <div runat="server" id="wrapper">
    </div>          
    </form>
 </body>

ascx.cs 是

   protected void Page_Load(System.Object sender, System.EventArgs e)
    {
        FAQController obj = new FAQController();
        DataSet ds = new DataSet();
        int id = 1;
        ds = obj.getfaq(id);
        litScript.Text += "{document.frmFaqs.S1.value = selectedFaq;}";
        string ltr;
        ltr = "<tr>";
        ltr += "<td height='52' valign='top' width='100%'>";
        ltr += "<table style='border-collapse: collapse;' id='AutoNumber1' border='0' bordercolor='#111111' cellpadding='0' cellspacing='0' height='1' width='100%'>";
        ltr += "<tbody>";
        ltr += "<tr><td align='center' height='42' width='34%'>&nbsp;</td><td align='center' height='42' width='33%'><p align='left'><font color='#0000FF' face='Verdana'>Question</font></p></td><td align='center' height='42' width='33%'>&nbsp;</td> </tr>";
        ltr += "<tr><td align='center' height='37' width='34%'>&nbsp;</td><td align='center' height='37' width='33%'><p align='left'><select size='16' name='cmbFaqs' style='width:400;height:146' onchange='getFaq(frmFaqs.cmbFaqs.options[frmFaqs.cmbFaqs.selectedIndex].value);  return false' multiple='multiple'><option selected='selected'>Select Your Question</option>";
        for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
        {
            if (i == 0)
            {
                ltr += "<option>-----" + ds.Tables[0].Rows[i]["heading"].ToString() + "-----</option>";
                Session["temp"] = ds.Tables[0].Rows[i]["heading"].ToString();
                ltr += "<option value='" + ds.Tables[0].Rows[i]["answer"].ToString() + "'>" + ds.Tables[0].Rows[i]["questions"].ToString() + " </option>";
            }
            else if (Session["temp"].ToString() == ds.Tables[0].Rows[i]["heading"].ToString())
            {
                ltr += "<option value='" + ds.Tables[0].Rows[i]["answer"].ToString() + "'>" + ds.Tables[0].Rows[i]["questions"].ToString() + " </option>";
            }
            else
            {
                ltr += "<option>-----" + ds.Tables[0].Rows[i]["heading"].ToString() + "-----</option>";
                Session["temp"] = ds.Tables[0].Rows[i]["heading"].ToString();
                ltr += "<option value='" + ds.Tables[0].Rows[i]["answer"].ToString() + "'>" + ds.Tables[0].Rows[i]["questions"].ToString() + " </option>";
            }
        }
        ltr += "</select></p></td><td align='center' height='37' width='33%'>&nbsp;</td></tr>";
        ltr += "<tr><td align='center' height='44' width='34%'>&nbsp;</td><td align='center' height='44' width='33%'><p align='left'><font color='#0000FF' face='Verdana'>Answer <font size='2'>(Do not type in this box)</font></font></p></td><td align='center' height='44' width='33%'>&nbsp;</td></tr>";
        ltr += " <tr><td align='center' width='34%'><font style='font-size: 9pt' face='Arial'><br>&nbsp;</font></td><td align='center' width='33%'><p align='left'><textarea rows='2' name='S1' cols='20' style='width: 400px; height: 247px;'>Unfortunately,we are not qualified to answer questions authoritively on Islam and therefore refrain from doing so in order not to mislead. We are only able to answer questions on our products. Please redirect your question to &lt;A target='_blank'";
        ltr += "href='http://english.islamweb.net/ver2/Fatwa/index.php?lang=E'&gt;http://english.islamweb.net/ver2/Fatwa/index.php?lang=E&lt;/A&gt;or &lt;a href='http://www.askimam.com'&gt;www.askimam.com&lt;/a&gt;</textarea></p></td><td align='center' width='33%'>&nbsp; </td></tr>";
        ltr += "</tbody>";
        ltr += "</table>";
        ltr += "</td>";
        ltr += "</tr>";
        wrapper.Controls.Add(new LiteralControl(ltr));

    }

当我在 .aspx 页面中使用它时,它工作得很好。但是当我在 dotnet nuke 的用户控件中尝试它时,javascript 不起作用

注意:frmFaqs 是一个带有 runat=server 的表单...我如何在 dotnetnuke 中使用表单标签

最佳答案

DotNetNuke 将所有内容包装在一个表单中,您的代码不能有自己的表单。如果您需要表单,则需要使用 iframe,或动态(使用 JavaScript)在主表单之外移动/创建它。

关于javascript 在 dotnetnuke 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7226833/

相关文章:

Javascript删除已知值的键和值数组

javascript - jQuery:隐藏元素在悬停时向下移动?

c# - 如何将数据转换为pdf文件,然后插入到zip并下载

dotnetnuke - 使用 IIS 7.5 和 Windows 7 安装 DotNetNuke 5.6.3 时出错

javascript - javascript中的词频

javascript - 如何从强制门户重定向到默认浏览器(cna 浏览器)

c# - 由于文本框内容而导致的 PageRequestManagerServerErrorException

.net - ASP.NET 页面中的 AspxAutoCookieProblem

dotnetnuke - 为什么 DotNetNuke TextEditor 控件在编辑模块 .ascx 文件后会中断

css - OpenContent (dotnetnuke) 中的过滤器设置不起作用