我需要的是一种根据是否填写其他字段来有条件地验证字段的方法.
防爆.我有一个相关的下拉列表和日期字段.如果没有设置任何字段,则表单应通过验证.但是,如果设置了两个字段中的一个但另一个未设置则应激活验证,则需要设置其他字段.
我编写了自定义验证类,但似乎它在单个字段上有效.有没有办法使用内置验证器设置我需要的验证?如果没有,是否有一种使用自定义验证器连接两个字段的好方法?
我首先想说的是我是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从Firefox和谷歌Chrome获取浏览器文化?注意:这是一个asp.net 3.5 Web应用程序.
要求是尝试根据浏览器文化设置应用程序的显示文化.我发现其他浏览器的信息很少,但它们似乎不起作用.
我可以使用以下代码片段在IE中获取它:
var browserCulture = this.clientInformation.browserLanguage;
Run Code Online (Sandbox Code Playgroud)
任何信息都会很棒!
我正在使用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弹出窗口阻止程序会阻止它,导致测试失败.从选项菜单中禁用阻止程序不起作用.另外,我担心一旦我在服务器上运行它们就会导致同样的问题.
有没有办法自动禁用测试的弹出窗口?
我们刚刚更新到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获得的元素列表.
var $self = $(this);
var $fields = $('.identifier-controls', $self);
Run Code Online (Sandbox Code Playgroud)
此列表是控件呈现时需要以某种方式操作的元素列表.$ fields列表中的每个元素都包含一个名为"data-order"的数据属性.这个属性告诉我应该在控件中安排元素的顺序(啊要求).顺序并不一定要在直接线性顺序(这意味着第一个控件可以有10个属性值和下一个15和下一个17等,他们只需要出现在递增顺序,有一个简单的实现这一目标的方法?我能提出的所有方法看起来有点过于复杂.
该应用程序使用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运行相同的软件版本.我倾向于认为某处存在一些配置问题,但设置相同则很难说清楚.我无法真正改变应用程序的工作方式或使用的技术.
任何人都有任何想法可能导致这个?
我正在编写一个服务器控件,它是一个带有建议的搜索框(当用户开始输入时,将显示匹配的单词供他们选择).我正在使用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文件中注册.
javascript ×4
jquery ×3
.net ×2
asp.net-mvc ×1
bdd ×1
browser ×1
c# ×1
capybara ×1
culture ×1
elements ×1
firefox ×1
jasmine ×1
jquery-ui ×1
requirejs ×1
sorting ×1
standards ×1
unit-testing ×1
validation ×1
webdriver ×1