它在我的小提琴http://jsfiddle.net/JustJill54/XFaaG/11/上工作,但当我将jQuery代码添加到CEWP时,它不起作用。(财政年度。我只是把jQuery放在CEWP中作为概念的证明。)当我在小提琴上看到src时,唯一的区别是Window.Load()事件是存在的,所以我尝试将该事件添加到我的CEWP中,但是警报仍然不起作用。
这是CEWP的代码
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script type="text/javascript">
$(window).load(function(){
$(document).ready(function() {
$("tr.reqDet").hide();
$("tr.anon").hide();
$("tr.actDet").hide();
// Attach to the focusout event of the select, if that's when
// you want to check the value
$("select[title='organizationalElement']").focusout(function() {
// Now see if it's the value you want
if ($(this).val() === 'idk') {
alert("If no organizational element is selected, additional time may be required to route this request");
} //close if
$("select[title='requestType']").change(function() {
$(".reqDet").toggle($(this).val() !== "");
}); //close requestType
$("select[title='anonymous']").change(function() {
$(".anon").toggle();
}); //close anonymous
$("select[title='action']").change(function() {
$(".actDet").toggle($(this).val() !== "");
}); //close action
}); //close select.focusout
}); //close doc.ready
}); //close window.load
</script>更新:我已经注释掉了我所有的逻辑,只是试图获得一个警报,以显示页面加载时,我仍然无法使它工作。
UPDATE2:我已经创建了一个具有与.html页面相同的控件的.html页面,并添加了jQuery脚本来显示页面加载时的警报,即使这个脚本也是工作的,但是使用.aspx页面的.aspx:FormField控件不起作用。
UPDATE3:我引用了一个javascript教程并修改了我的脚本。主要的区别是,不相等的操作符已经改为!=,我已经注释掉了Window.load事件。下面是我修改过的脚本:
//$(window).load(function(){
$(document).ready(function(){
$("tr.reqDet").hide();
$("tr.anon").hide();
$("tr.actDet").hide();
$("select[title='organizationalElement']").focusout(function() {
if ($(this).val() === 'idk') {
alert("If no organizational element is selected, additional time may be required to route this request");
} // close if
$("select[title='requestType']").change(function() {
$(".reqDet").toggle($(this).val() != "");
}); //close requestType.change
$("select[title='anonymous']").change(function(){
$(".anon").toggle();
}); //close anonymous.change
$("select[title='action']").change(function(){
$(".actDet").toggle($(this).val()!= "");
}); // close action.change
});//close select.focusout
}); // close doc.ready
//}); // close window.loadUPDATE4:我使用firebug获取选择器的val,并意识到它不是返回'idk‘(由SP的列表项的值指定),而是返回“我不知道”。这又引起了另一个问题/提醒我,我需要摆脱“不要”中的撇号。不管怎样,我还在想办法.
UPDATE5:@Janis-我无法在firebug的script选项卡上看到我的脚本.所以我想这意味着它不是被处决的。
顺便说一下。下面是UPDATE4之后脚本的状态。
$(window).load(function(){
$(document).ready(function(){
$("tr.reqDet").hide();
$("tr.anon").hide();
$("tr.actDet").hide();
$("select[title='organizationalElement']").focusout(function() {
if ($(this).val() === "I don\'t know") {
alert("If no organizational element is selected, additional time may be required to route this request");
} // close if
$("select[title='requestType']").change(function() {
$(".reqDet").toggle($(this).val() != "");
}); //close requestType.change
$("select[title='anonymous']").change(function(){
$(".anon").toggle();
}); //close anonymous.change
$("select[title='action']").change(function(){
$(".actDet").toggle($(this).val()!= "");
}); // close action.change
});//close select.focusout
}); // close doc.ready
}); // close window.load知道为什么吗?我以为我使用的是经常被称为(doc.ready,window.load)的相当一般的事件。
UPDATE6: Geez...FINALLY!我猜第六次是魅力所在。我肯定会告诉大家什么对我有用.无论如何,修改后的脚本如下:
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script type="text/javascript">
$(window).load(function(){
$(document).ready(function(){
$("tr.reqDet").hide();
$("tr.anon").hide();
$("tr.actDet").hide();
$("select[title='organizationalElement']").focusout(function() {
if ($(this).val() === "I don\'t know") {
alert("If no organizational element is selected, additional time may be required to route this request");
} // close if
$("select[title='requestType']").change(function() {
$(".reqDet").toggle($(this).val() != "");
}); //close requestType.change
$("select[title='anonymous']").change(function(){
$(".anon").toggle();
}); //close anonymous.change
$("select[title='action']").change(function(){
$(".actDet").toggle($(this).val()!= "");
}); // close action.change
});//close select.focusout
}); // close doc.ready
}); // close window.load
</script>我没有直接粘贴到.js文件中,而是将它作为SiteAssets文件上传到我创建的一个名为SiteAssets的文件夹中(如果我们迁移到SPD2010),并通过CEWP的内容链接调用该文件...js。使用firebug来验证脚本是否已加载。
所以,我在我的SP页面中学到了让这个jQuery脚本为我工作的一些东西-
发布于 2011-12-16 00:51:09
尝试将上述脚本添加到文本文件中,并将其保存在文档库中。然后编辑CEWP并在参考链接中添加脚本文件的url。SharePoint喜欢删除/销毁直接输入到CEWP中的代码。
发布于 2011-12-16 14:54:33
发布于 2011-12-15 00:00:25
只要检查你的小提琴,并发现那里,你在做一个window.load魔术,但只要删除它!
$(window).load(function(){我试过在你的小提琴和我的测试SharePoint,它工作。只需移除该行及其结束标记即可。
*不确定这会有魔力,但它对我有用,应该为你做*
https://stackoverflow.com/questions/8510898
复制相似问题