代码之家  ›  专栏  ›  技术社区  ›  bugfixr

jquery-.val()在php/apache中工作得很好,但在php/iis中却不是很好。

  •  0
  • bugfixr  · 技术社区  · 16 年前

    我有一个使用jquery的页面。

    $("#start_date").val()
    

    上面的代码返回Apache服务器上一个框的值。但是,在IIS中,它返回“未定义”。

    jquery的IIS部署是否需要特殊的设置注意事项?

    编辑第1页

    我还可能指出这是在使用jquery日期选择器。页面上其他仅为标准文本框的字段工作正常。

    编辑第2页

    好吧,所以我把范围缩小了一点。此日期的标记定义如下:

    id="add_start_date" name="start_date"
    

    当我将其更改为:

    id="start_date" name="start_date"
    

    它很好用。为什么服务器之间有区别?看起来这一点都不应该有什么不同。

    5 回复  |  直到 16 年前
        1
  •  1
  •   Chris Williams    16 年前

    查看从Apache服务器生成的源代码,并将其与从IIS服务器生成的源代码进行比较。另外,看看你是否可以使用webkit浏览器(safari或chrome)或firefox来查看是否正在传输javascript文件。

        2
  •  3
  •   Mason    16 年前

    JQuery的特性完全不可能依赖于您对Web服务器的选择。

    有可能不同的Web服务器提供了不同的HTML标记,正如以前的海报建议的那样,但问题是您正在针对不同的HTML集运行jquery。jQuery本身完全是在浏览器中执行的,这是基于浏览器的唯一实际差异。

    我知道这并不令人放心,我只是想让你意识到你找错人了。:。/

        3
  •  1
  •   Russ Cam    16 年前

    确保jquery脚本文件位于页面可访问的位置-您可以通过测试 window.$ (假设没有其他定义 $ 存在)。

        4
  •  1
  •   Guffa    16 年前

    问题很可能是在ASP.NET应用程序中,元素的实际ID不是 start_date 对于具有该ID的服务器控件。当服务器控件位于容器中时,容器ID将预先设置为控件ID以保持其唯一性。

    您可以使用clientID属性获取生成的ID:

    var id = '<%=start_date.ClientID%>';
    

    您在jquery代码中使用的名称:

    $('#'+id).val()
    
        5
  •  0
  •   DisgruntledGoat    16 年前

    您是否检查过HTML是相同的,并且肯定有一个元素(并且只有一个)的ID是 start_date ?

    如果不是这样,请确保正确包含jquery代码。一个好的测试是增加 alert('hello') 到文件-如果收到警报,文件将被包括在内。