0

让我们想象一个情况。

我有一个 ASP 网站,我正在将内容加载到 div

所以我有

<div id="placeholder"></div>
<button onClick="javascript:test()">Bla</button>

我正在通过 jQuery 向它加载内容:

$("#placeholder").load("@Url.Action("Add","Products")");

现在我想拥有 javascript 测试功能,它将像这样工作:

1)访问在占位符div中加载的内容,并找到一个表单(在此div中名为“FORM”,从产品控制器添加操作加载)并触发验证事件:

我试过了:$("#Form").valid()但它不起作用。

我应该怎么办 ?

4

1 回答 1

0

您所做的两个可能的问题:

  1. 您说表单有名称 FORM,但您使用id选择器尝试找到它 ( $("#Form"))。要么给它一个id,要么用$("form[name=Form]")来找到它。我还要确保你在两个地方使用相同的大写(你说名字是FORM但你#Form在选择器中使用了)。

  2. 您需要在加载后找到它。load为您提供回调(第二个参数)。

所以把它们放在一起:

// Either give it an `id` (here I've assumed `id="theForm"` in the markup):
$("#placeholder").load("@Url.Action("Add","Products")", function() {
    // This is the load callback, called when the load is complete
    $("#theForm").valid();
});

// Or use the selector `form[name=Form]` to find it:
$("#placeholder").load("@Url.Action("Add","Products")", function() {
    // This is the load callback, called when the load is complete
    $("form[name=Form]").valid(); // <== Assuming the name is "Form" not "FORM"
});

旁注:您不需要或不想要javascript:以下内容:

<button onClick="javascript:test()">Bla</button>
<!--             ^^^^^^^^^^^---- lose this   -->

它的影响为零。您只javascript:在需要 URL 的地方使用伪协议,例如hrefa元素上。旧式onXyzDOM0 处理程序始终使用整个页面的默认脚本,即 JavaScript(除非您使用一些古老的 Microsoft 专有元标记)。使用javascript:there 实际上没有错误的原因是它最终成为label

于 2012-12-30T16:36:17.133 回答