如何在 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;

valueOftoString 都是函数,在没有被显式调用的情况下,由于在 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 WebPart?

如何在 SharePoint 2010 沙盒可视 WebPart 上创建可编辑属性

如何使用 AngularJS 初始化 SharePoint 脚本编辑器 WebPart 内容

如何在 SharePoint WebPart 中包含 JavaScript 文件?

sharepoint webpart xlsx 要列出