0

如果有人忘记使用 C# 和 aspx 在表单上填写字段,我正在尝试弹出一个对话框。我的触发器在我的标题中,看起来像这样。

 function CheckSalesman() {
   alert("Alert!!!!!!!!!");
   $('#opener').trigger('click');

 }

这会单击一个隐藏的按钮。该按钮具有 id 开启器。我的听众在我的代码主体中。这用于触发对话框。

 $("#opener").click(function () {
     alert("OpenDialog!");
     stopSubmit();

     $("#dialog").dialog("open");
  });

它位于此处的原因是因为它所在的 javascript 标记正上方是我的对话框建立的位置。我已经尝试将侦听器放在标题中,但它在那里不起作用。建立对话框是我唯一可以让它工作的地方。

我试图将触发器移动到侦听器下方,然后触发器功能将永远不会运行。触发函数由 aspx 标签调用,该标签在其 .text 属性中插入了以下代码。

<script>CheckSalesman()</script>

我还尝试将侦听器和触发器都移动到标题,然后移动到正文,然后填充它们所在的位置。这些都没有奏效。我更改了隐藏按钮的 id,希望它可以做点什么,但又一次,什么也没做。我确实在触发器中看到了警报,但在侦听器中没有看到。

我不明白为什么这不起作用。从我自己和与我一起工作的人所知道的,这应该有效。

4

1 回答 1

0

您发布的代码没有任何问题。问题出在其他地方。这是一个 jsfiddle:http: //jsfiddle.net/dsyUa/

  1. 您的标签是否设置为不对文本进行 HtmlEncode?否则,您的脚本标签将无法正确解释。
  2. 函数和钩子代码都在调用代码之上吗?如果没有,它们还不存在,并且不可能执行。
  3. 您是否在钩子代码之前在页面上包含了 jQuery 库?
  4. 您是否将钩子代码包装在一个$(document).ready(function(){ ... }块中?如果是这样,则直到页面加载后才会执行,并且您的检查正在页面加载时进行。
  5. 对话框库是否需要页面准备好才能调用它?尝试将您的标签文本更改为:

<script>
$(document).ready(function(){
  setTimeout(function(){
    CheckSalemen();
  },5000);
});
</script>

您可以稍后对其进行调整,但这基本上是等待页面准备就绪,然后再等待 5 秒,然后再尝试进行检查。

于 2013-07-31T21:00:05.723 回答