让我们想象一下情况。
我有一个ASP网站,我在这里加载一个div
所以我有
<div id="placeholder"></div>
<button onClick="javascript:test()">Bla</button>
我正在通过jQuery加载内容:
$("#placeholder").load("@Url.Action("Add","Products")");
现在我想拥有javascript测试功能,它的工作原理如下:
1)访问占位符div中加载的内容,找到一个表单(在此div中名为“FORM”,从Product Controller Add action加载)和fire validate事件:
我尝试过:$("#Form").valid()
但它无效。
我该怎么办?
答案 0 :(得分:0)
您所做的两个可能的问题:
您说该表单中包含名称 FORM
,但您使用id
选择器尝试找到它($("#Form")
)。要么给它id
,要么使用$("form[name=Form]")
来找到它。我还要确保你在两个地方都使用相同的大小写(你说名字是FORM
,但你在选择器中使用了#Form
。
您需要在加载之后找到它。 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:
伪协议,例如href
元素上的a
。旧式onXyz
DOM0处理程序总是使用整个页面的默认脚本,即JavaScript(除非您使用的是一些古老的Microsoft专有元标记)。使用javascript:
实际上并不存在错误的原因是它最终成为label。