在服务器端访问 jQuery 控件?

Posted

技术标签:

【中文标题】在服务器端访问 jQuery 控件?【英文标题】:Access jQuery Controls on Server Side? 【发布时间】:2011-08-08 21:53:06 【问题描述】:

是否有构建用于从服务器端调用 jQuery / javascript 函数的库或框架?

例如,假设我在我的页面上使用 jQuery UI 日期选择器控件。日期选择器的格式(例如,MM/dd/yyyy)可根据每个用户进行配置。在这种情况下,我必须在服务器上检索用户首选项,在隐藏控件中记录用户选择的格式,将 html 页面发送到客户端,最后从客户端的隐藏控件中提取格式。是否有任何图书馆可以促进这个冗长的过程?

【问题讨论】:

什么服务器? php? ASP.NET? Java [+...]? 在这种情况下,您可以在通过服务器端脚本生成的 HTML 中编写内联 javascript。 对不起,伙计们。我在黑暗的一面。微软 ASP.NET 4.0。 【参考方案1】:

我喜欢为这类事情使用自定义属性。

<asp:TextBox runat="server" id="myDatePicker" ClientIDMode="Static" 
  format="MM/dd/yyyy" />

在根据用户设置渲染页面时渲染属性,然后客户端代码可以在需要时抓取它并酌情应用:

var format = $('#myDatePicker').attr('format');

我有时会为此目的使用一个简单的基础架构,它可以 JSON+base64 编码对象以包含在通用“数据”属性中,然后在客户端展开它,以向控件添加更复杂的信息。

在其他情况下,我只是在需要时使用通过 ajax 调用的服务从客户端获取设置,但如果您已经知道呈现页面时的内容,这种方式会更有效。

【讨论】:

【参考方案2】:

您需要结合某种服务器端脚本语言(例如 mysql/PHP)来拉取用户偏好,那么捆绑起来应该不会太难。您只需要使存储“动态”因为它接受广泛的日期格式,或转换为更标准化的格式。

在我知道您使用的是什么语言或一些示例代码之前,我很难回答。

【讨论】:

【参考方案3】:

取决于您的网站和页面的设置方式。但是,如果您将用户选择的日期选择器格式存储在 cookie 或会话变量中,您可以通过页面上的字符串属性(例如 DatePickerFormat)公开此值,然后使 jQuery datepicker dateFormat 像这样动态:

$(document).ready(function() 
  $('#idOfDataPickerControl').datepicker('option', 'dateFormat', '<%=DatePickerFormat%>');
);

【讨论】:

以上是关于在服务器端访问 jQuery 控件?的主要内容,如果未能解决你的问题,请参考以下文章

用jQuery实现jsonp跨域

基于Tomcat服务器,通过JQuery的Ajax方法访问Servlet实现前后端数据同步/异步交流(不必跳转或者刷新网页实现JSP前后端交互)

基于Tomcat服务器,通过JQuery的Ajax方法访问Servlet实现前后端数据同步/异步交流(不必跳转或者刷新网页实现JSP前后端交互)

jquery实现跨域请求(复制)

如何同时使用 jquery 和服务器端验证客户端?

如何使用发布请求将服务器端 jquery 数据表数据发送到服务器