它适用于我的小提琴http://jsfiddle.net/JustJill54/XFaaG/11/,但是当我向CEWP添加jQuery代码时却没有。 (仅供参考。我只是在CEWP中使用jQuery来进行概念验证。) 只有当我在小提琴的结果中查看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>
更新:我已经注释掉了我的所有逻辑,只是试图在页面加载时显示AN警告,但仍然无法让它工作。
UPDATE2:我创建了一个与我的SharePoint页面具有相同控件的.html页面,并添加了jQuery脚本以在页面加载时显示警报,甚至那个工作正常,但带有SharePoint的.aspx页面:FormField控件不起作用
UPDATE3:我引用了一个javascript教程并修改了我的脚本。主要区别在于NOT EQUAL运算符已更改为!=而我已注释掉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.load
UPDATE4:我使用了firebug来获取选择器的val,并意识到它没有返回&#39; idk&#39; (根据SP&#39的列表项的值来指定),但是返回&#34;我不知道&#34;代替。这提出了另一个问题/提醒我,我将需要逃避撇号(&#39;)。无论如何,仍在解决问题...
UPDATE5:@ Janis-我无法在firebug的脚本选项卡上看到我的脚本...所以我猜这意味着它没有被执行。
顺便说一句。这是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 ......最后!猜猜第六次的魅力。我绝对会让每个人都知道对我有用的东西.... 无论如何,修改后的脚本如下:
<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>
我没有直接粘贴到CEWP中,而是将其作为.js文件上传到我创建的名为SiteAssets的文件夹(如果我们迁移到SPD2010),并通过CEWP调用所述文件... js&#39;的内容链接。使用firebug验证正在加载的脚本。
所以,我已经了解了一些关于在我的SP页面中让这个jQuery脚本为我工作的事情 -
答案 0 :(得分:1)
尝试将上述脚本添加到文本文件中并将其保存在文档库中。然后编辑CEWP并在参考链接中添加脚本文件的URL。如果代码直接输入CEWP,SharePoint喜欢剥离/销毁代码。
答案 1 :(得分:1)
答案 2 :(得分:0)
只需检查你的小提琴,找到那里,你正在做一个window.load魔法,但只是删除它!
$(window).load(function(){
我已经在你的小提琴和我的测试SharePoint中尝试过它,它可以工作。只需删除该行及其结束标记。}
*不确定这会产生魔力,但它适用于我,应该为你做*