如何在 SharePoint WebPart 上使用 jQuery 响应 RadioButton 的更改事件?
Posted
技术标签:
【中文标题】如何在 SharePoint WebPart 上使用 jQuery 响应 RadioButton 的更改事件?【英文标题】:How can I respond to a RadioButton's change event with jQuery on a SharePoint WebPart? 【发布时间】:2015-08-15 13:38:34 【问题描述】:我快接近了;在一个孤立的海角上挣扎并从我自己身上发出细丝,细丝,细丝(如记录here)后,我将其添加到网页的 *.ascx 文件的末尾(在
<script>
$(document).ready(function ()
alert("How does that grab you?");
var s = $("#radbtnEmp").toString;
alert(s);
var t = $("#radbtnEmp").valueOf;
alert(t.toString);
$('input:radio[name=radbtnEmp]:checked').change(function ()
if ($("input[name='radbtnEmp']:checked").val() == 'Employee?')
alert("radbtnEmp checked");
else
alert("radbtnEmp not checked");
);
);
</script>
...我确实看到“这对你有什么影响?”当页面加载时,以及其他几个类似这样的警报:
但是我仍然没有看到对我真正需要响应的响应,即单选按钮的更改事件(在将其从关闭切换到打开之后)。
这个 jQuery 有什么问题/遗漏吗?
注意: RadioButton 的创建和分配 ID 如下所示:
var radbtnEmployeeQ = new RadioButton
CssClass = "dplatypus-webform-field-input",
ID = "radbtnEmp"
;
【问题讨论】:
我将单选按钮更改为复选框。然后我发现我分配给它的 ID (ckbxEmp) 得到了“Welshified”。因此,需要以下内容才能使其工作: $(document).on("change", '[id$=ckbxEmp]', function () 【参考方案1】:因为你需要
var s = $("#radbtnEmp").toString();
var t = $("#radbtnEmp").valueOf();
代替
var s = $("#radbtnEmp").toString;
var t = $("#radbtnEmp").valueOf;
valueOf
和 toString
都是函数,在没有被显式调用的情况下,由于在 javascript 中函数是对象,您可以将它们分配给一个变量,警报的结果就是您所看到的...
【讨论】:
真的吗? jsfiddle(使用 JSHint)并没有抱怨缺少括号 - 无论哪种方式,它都说 jQuery 通过了集合。此外,这不是我真正的问题 - 我怎样才能让单选按钮响应被更改(选中或未选中)是问题。 此外,添加括号没有任何区别。无论哪种方式都可以,这取决于您是否喜欢警报。 我明白了。当您创建单选按钮时,您没有分配您使用 jquery 选择的“名称”属性来侦听更改事件,您可以使用单选按钮元素最终在页面中如何绘制来更新您的问题吗?跨度> JsFiddle 的问题是您的输入中没有“id”可供选择,也没有加载 jQuery。这是工作版本 => jsfiddle.net/clayshannon/jy6t5oru 看起来不错。如果您希望它不可选中,则不会转义复选框,很高兴您找到了解决方案。【参考方案2】:问题在于尝试使用我提供的 ID 来获取对元素的引用还不够好,例如 Sharepoint、ASP.NET、Chrome、Tim Berners-Lee、Al Gore 或 somebody,正在威尔士化 ID,如“查看源代码”中所示
因此,我必须使用“查找以我分配的 ID 名称结尾的 ID”语法来使其工作。您可以看到细节here,但基本上需要的是这个(用复选框替换单选按钮):
$(document).on("change", '[id$=ckbxEmp]', function ()
【讨论】:
以上是关于如何在 SharePoint WebPart 上使用 jQuery 响应 RadioButton 的更改事件?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Visual Studio 2013 开发 Sharepoint Webpart
如何在 SharePoint 2010 沙盒可视 WebPart 上创建可编辑属性
如何使用 AngularJS 初始化 SharePoint 脚本编辑器 WebPart 内容