小编The*_*eek的帖子

使用Fluent验证进行条件验证

我需要的是一种根据是否填写其他字段来有条件地验证字段的方法.

防爆.我有一个相关的下拉列表和日期字段.如果没有设置任何字段,则表单应通过验证.但是,如果设置了两个字段中的一个但另一个未设置则应激活验证,则需要设置其他字段.

我编写了自定义验证类,但似乎它在单个字段上有效.有没有办法使用内置验证器设置我需要的验证?如果没有,是否有一种使用自定义验证器连接两个字段的好方法?

.net c# validation asp.net-mvc fluentvalidation

67
推荐指数
1
解决办法
4万
查看次数

让requirejs与Jasmine一起工作

我首先想说的是我是RequireJS的新手,甚至是Jasmine的新手.

我有一些SpecRunner的问题,需要JS.我一直在关注Uzi Kilon和Ben Nadel(以及其他一些人)的教程,他们帮助了一些,但我仍然遇到了一些问题.

看来,如果在测试中抛出错误(我可以想到一个特别是类型错误),将显示spec runner html.这告诉我,我在javascript中有一些问题.但是,在我修复这些错误后,不再显示HTML. 我根本无法让测试跑者显示出来.有人发现我的代码可能会导致此问题吗?

这是我的目录结构:

Root 
|-> lib
    |-> jasmine
        |-> lib (contains all of the jasmine lib)
        |-> spec
        |-> src
    |-> jquery (jquery js file)
    |-> require (require js file) 
index.html (spec runner) specRunner.js
Run Code Online (Sandbox Code Playgroud)

这是SpecRunner(索引)HTML:

<!doctype html>
<html lang="en">
    <head>
        <title>Javascript Tests</title>

        <link rel="stylesheet" href="lib/jasmine/lib/jasmine.css">

        <script src="lib/jasmine/lib/jasmine.js"></script>
        <script src="lib/jasmine/lib/jasmine-html.js"></script>
        <script src="lib/jquery/jquery.js"></script>
        <script data-main="specRunner" src="lib/require/require.js"></script>

        <script>
            require({ paths: { spec: "lib/jasmine/spec" } }, [
                    // Pull in all your modules containing …
Run Code Online (Sandbox Code Playgroud)

javascript bdd unit-testing requirejs jasmine

66
推荐指数
2
解决办法
4万
查看次数

如何使用javascript获取浏览器当前的区域设置首选项?

有谁知道如何使用javascript从Firefox和谷歌Chrome获取浏览器文化?注意:这是一个asp.net 3.5 Web应用程序.

要求是尝试根据浏览器文化设置应用程序的显示文化.我发现其他浏览器的信息很少,但它们似乎不起作用.

我可以使用以下代码片段在IE中获取它:

var browserCulture = this.clientInformation.browserLanguage;
Run Code Online (Sandbox Code Playgroud)

任何信息都会很棒!

javascript firefox culture internet-explorer google-chrome

38
推荐指数
3
解决办法
6万
查看次数

Google Chrome中的弹出窗口阻止导致Capybara/Rspec测试问题

我正在使用Capybara/RSpec编写一些自动化测试,我通过使用这一点ruby来选择/配置驱动程序:

Capybara.register_driver :selenium_chrome do |app|
  Capybara::Selenium::Driver.new(app, :browser => :chrome)
end
Run Code Online (Sandbox Code Playgroud)

我正在测试我点击的按钮是否打开弹出窗口,窗口是否显示应该显示的内容.问题是当测试打开窗口时,Google Chrome弹出窗口阻止程序会阻止它,导致测试失败.从选项菜单中禁用阻止程序不起作用.另外,我担心一旦我在服务器上运行它们就会导致同样的问题.

有没有办法自动禁用测试的弹出窗口?

google-chrome webdriver popup-blocker capybara

10
推荐指数
2
解决办法
2万
查看次数

window.Open导致新窗口出现在父窗口后面

我想知道是否有人知道如何防止IE弹出父母后面的子窗口.

javascript browser

8
推荐指数
1
解决办法
5400
查看次数

更新到最新的JQuery UI和datepicker会导致始终看到datepicker

我们刚刚更新到JQuery 1.5.2.min和JQuery-ui-1.8.11.min并且正在使用最新的datepicker.js文件(我说文件因为我们也使用了一些本地化版本的datepicker) .

在我们更新之前,我们使用以下代码初始化并使用datepicker并设置区域设置

$.datepicker.setDefaults($.datepicker.regional['']);

$('.datepicker').keypress(function()
{
    $(this).datepicker('hide');
});

$('.datepicker').datepicker();
$('.datepicker').datepicker('option', $.datepicker.regional[widgetCulture]);
$('.datepicker').datepicker('option', 'showAnim', '');
$('.datepicker').datepicker('setDate', new Date());
Run Code Online (Sandbox Code Playgroud)

自更新以来,当您滚动到使用日期选择器的屏幕底部时,您可以在所有控件下方看到它.它就漂浮在那里!单击与日期选择器关联的字段后,它将显示在应有的位置,然后在刷新页面之前不会再次出现在屏幕底部.当我注释掉.datepicker()行以外的所有东西时,我看到的只是一个灰色条而不是整个日历,这是一个更好的,我想(不是真的),但仍然需要修复.上述代码的任何其他行都会显示整个日历.这非常令人沮丧!

有人可以对此有所了解吗?

jquery jquery-ui jquery-ui-datepicker

8
推荐指数
1
解决办法
2859
查看次数

在JQuery中对元素列表进行排序

我有一个使用JQuery获得的元素列表.

var $self = $(this);
var $fields = $('.identifier-controls', $self);
Run Code Online (Sandbox Code Playgroud)

此列表是控件呈现时需要以某种方式操作的元素列表.$ fields列表中的每个元素都包含一个名为"data-order"的数据属性.这个属性告诉我应该在控件中安排元素的顺序(啊要求).顺序并不一定要在直接线性顺序(这意味着第一个控件可以有10个属性值和下一个15和下一个17等,他们只需要出现在递增顺序,有一个简单的实现这一目标的方法?我能提出的所有方法看起来有点过于复杂.

sorting jquery elements

7
推荐指数
3
解决办法
1万
查看次数

尝试在模态窗口中打开模态窗口时出现Javascript错误

该应用程序使用asp.net 2.0在Windows Server 2003上运行,是一个特定于IE的Web应用程序.有一个按钮可以使用来自JavaScript中的函数调用的showModalDialog(...)在iframe中打开表单.

以下是该功能的示例:

    function ShowBusinessHoursSubForm( source )
{
    var retval = window.showModalDialog("htm/" + locLocaleID + "/SubFormHostFrame.htm", source, "dialogWidth:265px;dialogHeight:261px;help:no;scroll:no;status:no;");

}
Run Code Online (Sandbox Code Playgroud)

主机框架正在加载一个aspx页面,其中包含正在使用的实际表单.在打开的表单上有一个按钮,单击该按钮后,将更改提交到表单.但是,如果在提交表单之前未进行任何更改,则会弹出另一个模式窗口,指出表单没有更改.通过在按钮单击事件中注册一些JavaScript来打开此模态窗口.代码如下(C#):

string l_S_ErrorScript = "<script type='text/javascript' language='javascript'>window.showModalDialog('htm/" + l_S_Culture + "/NotChangedErrorDialog.htm', '../../" + l_S_SkinPath + "', 'dialogWidth:310px;dialogHeight:145px;scroll:no;help:no;status:no;');</script>";

if(!m_Page.ClientScript.IsStartupScriptRegistered("ErrorScript"))
        {
            m_Page.ClientScript.RegisterStartupScript(this.GetType(), "ErrorScript", l_S_ErrorScript);
        }
Run Code Online (Sandbox Code Playgroud)

单击该按钮并显示此对话框时,将显示以下JavaScript错误:

错误:对象不支持此属性或方法

奇怪的是,如果我在本地访问应用程序并尝试它一切正常,但从另一台计算机访问会导致错误.此外,根据什么服务器(我们有许多服务器用于测试所有与Windows Server 2003),错误可能不会发生在另一台计算机上.这些计算机使用具有相同设置的相同版本的IE运行相同的软件版本.我倾向于认为某处存在一些配置问题,但设置相同则很难说清楚.我无法真正改变应用程序的工作方式或使用的技术.

任何人都有任何想法可能导致这个?

javascript showmodaldialog

6
推荐指数
1
解决办法
4756
查看次数

如何将JQuery嵌入到自定义服务器控件中

我正在编写一个服务器控件,它是一个带有建议的搜索框(当用户开始输入时,将显示匹配的单词供他们选择).我正在使用jquery和C#.

当我在我正在测试的页面上包含jquery Lib时,控件工作正常.但是,当我尝试将lib嵌入DLL时,它将无法工作.

我试过完全嵌入它并注册脚本:

ClientScriptManager manager = this.Page.ClientScript;
manager.RegisterClientScriptResource(typeof(Search), jqueryResource); //jqueryResource= SearchControl.javascript.jquery.js 
Run Code Online (Sandbox Code Playgroud)

我也尝试在包含jquery的页面标题中添加一个标记:

string javascriptUrl = manager.GetWebResourceUrl(typeof(Search), jqueryResource); 
LiteralControl jquery = new LiteralControl(string.Format(javascriptInclude, jqueryUrl));
Page.Header.Controls.Add(jquery);
Run Code Online (Sandbox Code Playgroud)

尝试从控件获取信息时,这两种方式都会导致javascript错误(Object Expected)

var params = $("#searchBox").val(); //called on keyup when typing in textbox
Run Code Online (Sandbox Code Playgroud)

有人曾经这样做过吗?可能吗?有人可以对此有所了解吗?

PS:程序集已在AssemblyInfo.cs文件中注册.

.net jquery custom-server-controls

5
推荐指数
1
解决办法
2837
查看次数

网页设计中屏幕尺寸的标准

设计网站时屏幕尺寸的标准是什么?它还是800x600吗?

standards web-standards

5
推荐指数
1
解决办法
4781
查看次数