- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
更新
我已使用 Igor's Answer 中的一些提示将类型集成到成员(member)注册中。并搜索 stackoverflow。它无法按预期工作,因为除了第一个成员类型 select
之外,其他成员类型 select
元素不会触发 registrationTypeChange 函数。因此,第一个成员的类型工作正常,而其他成员的类型没有按预期显示。
注意:第一个成员的选择在 Chrome 和 IE 中按预期工作,但在 Firefox 中不起作用
屏幕截图
正如您所看到的,当第二个成员的类型更改为“句点”时,相关元素不会显示,它应该与第一个成员类似,因为两者都是“句点”类型。我已经检查了用于查找 id 中的数字的正则表达式,它工作正常( Fiddle )。我猜想错误可能出在函数registrationTypeChange上。有人可以帮助我修复代码以使其在所有浏览器中按预期工作吗?
<强> Fiddle
HTML
<div class="row">
<fieldset class="frame-border">
<legend class="frame-border">Members Registration</legend>
<div class="alert alert-warning alert-dismissible" role="alert" id="memberMinAlert">
<button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">×</span><span class="sr-only">Close</span>
</button>Minimum one member is required.</div>
<div class="row">
<div class="form-group-sm required">
<label class="col-xs-2 col-md-2"></label>
<label class="control-label col-xs-2 col-md-3">Name</label>
<label class="control-label col-xs-2 col-md-2">Type</label>
</div>
<div class="form-group-sm">
<label class="control-label col-xs-2 col-md-2">1st Parameter</label>
<label class="control-label col-xs-2 col-md-2">2nd Parameter</label>
</div>
<div class="col-xs-2 col-md-1"> <span class="glyphicon glyphicon-plus-sign big" id="memberAdd" data-toggle="popover" data-placement="right" title="Click to add a member."></span>
<span class="glyphicon glyphicon-minus-sign big" id="memberRemove" data-toggle="popover" data-placement="right" title="Click to remove a member."></span>
</div>
</div>
<div class="member-template">
<div class="row">
<div class="form-group-sm required">
<label class="control-label col-xs-2 col-md-2" id="registrationMemberLabel">Member</label>
<div class="col-xs-2 col-md-3"> <span class="help glyphicon glyphicon-info-sign" data-toggle="popover" data-placement="right" title="Name of the member."></span>
<input type="text" id="registrationMemberName" class="form-control" placeholder="Enter Name">
</div>
<div class="col-xs-2 col-md-2"> <span class="help glyphicon glyphicon-info-sign" data-toggle="popover" data-placement="right" title="Type of the membership."></span>
<select id="registrationMemberType" class="type-selector form-control">
<option value="yearly" selected="selected">Yearly</option>
<option value="period">Period</option>
</select>
</div>
<div class="col-xs-2 col-md-2"> <span class="help glyphicon glyphicon-info-sign" id="registrationMemberParam1Help" data-toggle="popover" data-placement="right" title="Help"></span>
<input type="number" id="registrationMemberParam1" name="registrationMemberParam1" class="form-control" min="2014" max="3000" step="1" placeholder="Name">
</div>
<div class="col-xs-2 col-md-2"> <span class="help glyphicon glyphicon-info-sign" id="registrationMemberParam2Help" data-toggle="popover" data-placement="right" title="Help"></span>
<input type="number" id="registrationMemberParam2" name="registrationMemberParam2" class="form-control" min="2015" max="3000" step="1 " placeholder="Name">
</div>
</div>
</div>
</div>
<div id="memberContainer"></div>
</fieldset>
</div>
JavaScript
function registrationTypeChange(memberNum) {
var theValue = $('#registrationMember' + memberNum + 'Type').find("option:selected").text();
if (theValue === "Yearly") {
$('#registrationMember' + memberNum + 'Param1Help').attr("title", "Please provide the year of membership");
$('#registrationMember' + memberNum + 'Param1').attr("placeholder", "Year");
$('#registrationMember' + memberNum + 'Param2').hide();
$('#registrationMember' + memberNum + 'Param2Help').hide();
} else if (theValue === "Period") {
$('#registrationMember' + memberNum + 'Param1Help').attr("title", "Please provide the starting year of membership");
$('#registrationMember' + memberNum + 'Param1').attr("placeholder", "From");
$('#registrationMember' + memberNum + 'Param2Help').attr("title", "Please provide the ending year of membership");
$('#registrationMember' + memberNum + 'Param2').attr("placeholder", "To");
$('#registrationMember' + memberNum + 'Param2').show();
$('#registrationMember' + memberNum + 'Param2Help').show();
}
}
function addMember() {
var memberNum = $('.member').length + 1;
var $html = $('.member-template').clone();
$html.find('[id=registrationMemberLabel]').html("Member" + memberNum);
$html.find('[id=registrationMemberLabel]').attr("id", "registrationMember" + memberNum + "Label");
$html.find('[id=registrationMemberName]').attr("id", "registrationMember" + memberNum + "Name");
$html.find('[id=registrationMemberType]').attr("id", "registrationMember" + memberNum + "Type");
$html.find('[id=registrationMemberParam1]').attr("id", "registrationMember" + memberNum + "Param1");
$html.find('[id=registrationMemberParam1Help]').attr("id", "registrationMember" + memberNum + "Param1Help");
$html.find('[id=registrationMemberParam2]').attr("id", "registrationMember" + memberNum + "Param2");
$html.find('[id=registrationMemberParam2Help]').attr("id", "registrationMember" + memberNum + "Param2Help");
return $html.html();
}
function removeMember() {
var memberNum = $('.member').length;
if (memberNum > 1) {
document.getElementById("registrationMember" + memberNum).remove();
} else {
$("#memberMinAlert").alert();
$("#memberMinAlert").fadeTo(2000, 500).slideUp(500, function () {
$("#memberMinAlert").alert('close');
});
}
}
function addMemberHTML() {
$('<div/>', {
'class': 'member',
'id': 'registrationMember' + ($('.member').length + 1),
html: addMember()
}).appendTo('#memberContainer');
registrationTypeChange($('.member').length);
}
$(function () {
addMemberHTML();
registrationTypeChange(1);
$("#memberMinAlert").hide();
$('#memberAdd').click(function () {
addMemberHTML();
});
$('#memberRemove').click(function () {
removeMember();
});
$(".type-selector").change(function () {
var re = /(?:\d+)/;
var num = event.target.id.match(re);
registrationTypeChange(num);
});
});
<小时/>
我需要在动态元素集中动态管理表单元素。例如,我有一个成员(member)表单,它通过单击图标动态管理输入(添加、删除和更改属性)。(加号用于添加,减号用于删除),它是基于 this 设计的。发布。
成员(member)注册中的类型选择
通过更改选项动态管理一些元素(显示、隐藏和更改属性)。
HTML
<div class="row">
<fieldset class="frame-border">
<legend class="frame-border">Type</legend>
<div class="row">
<div class="form-group-sm required">
<label class="control-label col-xs-4 col-md-4">Type</label>
<label class="col-xs-4 col-md-4">1st Parameter</label>
<label class="col-xs-4 col-md-4">2nd Parameter</label>
</div>
</div>
<div class="row">
<div class="form-group-sm required">
<div class="col-xs-4 col-md-4">
<span class="help glyphicon glyphicon-info-sign" data-toggle="popover" data-placement="right" title="Type of Membership."></span>
<select id="registrationMemberTypeSample" class="form-control" >
<option value="yearly" selected="selected">Yearly</option>
<option value="period">Period</option>
</select>
</div>
<div class="col-xs-4 col-md-4">
<span class="help glyphicon glyphicon-info-sign" id="registrationMemberParam1Help" data-toggle="popover" data-placement="right" title="Help"></span>
<input type="number" id="registrationMemberParam1" name="registrationMemberParam1" class="form-control" min="2014" max="3000" step="1" placeholder="Name">
</div>
<div class="col-xs-4 col-md-4">
<span class="help glyphicon glyphicon-info-sign" id="registrationMemberParam2Help" data-toggle="popover" data-placement="right" title="Help"></span>
<input type="number" id="registrationMemberParam2" name="registrationMemberParam2" class="form-control" min="2015" max="3000" step="1 "placeholder="Name">
</div>
</div>
</div>
</fieldset>
</div>
<div class="row">
<fieldset class="frame-border">
<legend class="frame-border">Members Registration</legend>
<div class="alert alert-warning alert-dismissible" role="alert" id="memberMinAlert">
<button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
Minimum one member is required.
</div>
<div class="row">
<div class="form-group-sm required">
<label class="col-xs-3 col-md-3"> </label>
<label class="control-label col-xs-4 col-md-4">Name</label>
<label class="control-label col-xs-3 col-md-3">Type</label>
</div>
<div class="col-xs-2 col-md-2">
<span class="glyphicon glyphicon-plus-sign big" id="memberAdd" data-toggle="popover" data-placement="right" title="Click to add a member."></span>
<span class="glyphicon glyphicon-minus-sign big" id="memberRemove" data-toggle="popover" data-placement="right" title="Click to remove a member."></span>
</div>
</div>
<div class="member-template">
<div class="row">
<div class="form-group-sm required">
<label class="control-label col-xs-3 col-md-3" id="registrationMemberLabel">Member</label>
<div class="col-xs-4 col-md-4">
<span class="help glyphicon glyphicon-info-sign" data-toggle="popover" data-placement="right" title="Name of the member."></span>
<input type="text" id="registrationMemberName" class="form-control" placeholder="Enter Name">
</div>
<div class="col-xs-3 col-md-3">
<span class="help glyphicon glyphicon-info-sign" data-toggle="popover" data-placement="right" title="Type of the membership."></span>
<select id="registrationMemberType" class="form-control" >
<option value="yearly" selected="selected">Yearly</option>
<option value="period">Period</option>
</select>
</div>
</div>
</div>
</div>
<div id="memberContainer"></div>
</fieldset>
</div>
JavaScript
function registrationTypeChange() {
var theValue = $("#registrationMemberTypeSample").find("option:selected").text();
if(theValue === "Yearly" )
{
$('#registrationMemberParam1Help').attr("title","Please provide the year of membership");
$('#registrationMemberParam1').attr("placeholder","Year");
$('#registrationMemberParam2').hide();
$('#registrationMemberParam2Label').hide();
$('#registrationMemberParam2Help').hide();
}
else if(theValue === "Period" )
{
$('#registrationMemberParam1Help').attr("title","Please provide the starting year of membership");
$('#registrationMemberParam1').attr("placeholder","From");
$('#registrationMemberParam2Help').attr("title","Please provide the ending year of membership");
$('#registrationMemberParam2').attr("placeholder","To");
$('#registrationMemberParam2').show();
$('#registrationMemberParam2Help').show();
$('#registrationMemberParam2Label').show();
}
}
function addMember() {
var memberNum = $('.member').length+1;
var $html = $('.member-template').clone();
$html.find('[id=registrationMemberLabel]').html("Member" + memberNum);
$html.find('[id=registrationMemberLabel]').attr("id", "registrationMember" + memberNum + "Label");
$html.find('[id=registrationMemberName]').attr("id", "registrationMember" + memberNum + "Name");
$html.find('[id=registrationMemberType]').attr("id", "registrationMember" + memberNum + "Type");
return $html.html();
}
function removeMember() {
var memberNum = $('.member').length;
if(memberNum > 1 ) {
document.getElementById("registrationMember" + memberNum).remove();
}
else {
$("#memberMinAlert").alert();
$("#memberMinAlert").fadeTo(2000, 500).slideUp(500, function(){
$("#memberMinAlert").alert('close');
});
}
}
function addMemberHTML(){
$('<div/>', {
'class' : 'member', 'id' :'registrationMember'+($('.member').length+1), html: addMember()
}).appendTo('#memberContainer');
}
$(function () {
registrationTypeChange();
addMemberHTML();
$("#memberMinAlert").hide();
$('#memberAdd').click(function () {
addMemberHTML();
});
$('#memberRemove').click(function () {
removeMember();
});
$("#registrationMemberTypeSample").change(function() {
registrationTypeChange();
});
});
<强> JS Fiddle
现在我需要帮助将类型集成到所有成员行的成员注册中。我不知道要如何实现这一目标。谁能指导我如何做到这一点?
最佳答案
指南:
registrationTypeChange()
可以很好地管理某些字段。<select class="type-selector" >
您依赖于该类 on()
方法,例如:
('.type_selector').on('change', function{... 做一些事情来更改其他输入})。
此函数内部 function{... do stuff to change other parameters })
this
(或 $(this)
)应引用用户现在更改的特定类型选择器(有关更多信息,请参阅文档)。所以你用 jquery 追踪它的 sibling / parent ,例如:$(this).siblings(<selector optional>)
因此能够仅在该给定行中更改/添加其他参数设置。
随时询问是否有问题。不清楚。
对于第 4 点:
您的模板:
<div class="member-template">
<div class="row">
<div class="form-group-sm required">
<label class="control-label col-xs-3 col-md-3" id="registrationMemberLabel">Member</label>
<div class="col-xs-4 col-md-4">
<span class="help glyphicon glyphicon-info-sign" data-toggle="popover" data-placement="right" title="Name of the member."></span>
<input type="text" id="registrationMemberName" class="form-control" placeholder="Enter Name">
</div>
<div class="col-xs-3 col-md-3">
<span class="help glyphicon glyphicon-info-sign" data-toggle="popover" data-placement="right" title="Type of the membership."></span>
<select id="registrationMemberType" class="form-control" >
<option value="yearly" selected="selected">Yearly</option>
<option value="period">Period</option>
</select>
</div>
</div>
</div>
</div>
$(this).parent('span')
将保存选择元素的父范围( <span class="help glyphicon glyphicon-info-sign" data-toggle="popover" data-placement="right" title="Type of the membership."></span>
)$(this).parents('.row')
将为所有家长带课row
,在我们的例子中,它是该行中的顶部父级;请参阅parents() of jquery $(this).parents('.row').children('input')
将举行input
元素。请参阅children() of jquery 。顺便说一下,输入的 id 应该是唯一的,因为会有多个这样的行。我没有测试它,所以你做了一些小步骤,并使用 console.log() 或 console.dir() 选定的元素。
这里是您在类型选择器更改时调用registrationTypeChange()的地方:
$(".type-selector").change(function () {
var re = /(?:\d+)/;
var num = event.target.id.match(re);
registrationTypeChange(num);
});
因为这些type selectors
是动态的:
it doesn't work because it wasn't originally included in the page initialization.
因此,您需要通过jquery on()来铰接它们的功能方法:
Attach an event handler for all elements which match the current selector, now and in the future.
参见my answer's update section对于这种情况。
试试这个:
$(".type-selector").on('change', function () {
var re = /(?:\d+)/;
var num = event.target.id.match(re);
registrationTypeChange(num);
});
从此answer它指出这 on
方法需要一个选择器参数
otherwise the event is directly bound instead of delegated, which only works if the element already exists (so it doesn't work for dynamically loaded content)
所以绑定(bind)的代码应该是
JQuery(document).on('change', ".type-selector" ,function () {
...
});
关于javascript - 使用 jQuery 切换 DOM 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27551345/
我正在尝试创建一个简单的小部件,它只有一个切换按钮,但我的 AVD 模拟器上不断出现错误,提示“加载小部件有问题”。 似乎是因为我在小部件布局中添加了开关或切换按钮。 为了测试它,我创建了一个新的空
我正在使用 GLFW 进行键盘输入,但处理速度太快,因此我的 bool 开关在一次按下时被更改了 10 次,因为输入是每一帧处理的。我只需要按一次空格键即可切换状态。我当前的代码如下: if (glf
我希望完成一个相当简单的任务(我希望!) 我有两个 div 标签和一个 anchor 标签,像这样: forgot password? 我希望使用 anchor 标记在两个 div 标记之间切换,
我已经尝试了几种不同的方法,但似乎无法弄清楚如何将 span 的类从“die2”切换到“die3”以及将 div 的显示样式从“block”切换到“none”。有人有任何解决方案吗? (基本上当页面加
我正在尝试制作一个交换小部件,该小部件显示两个不同的文本。激活时,它下面显示一个TextField,顶部是不可见的,而禁用时它上面显示一个Text,而底部是不可见。但是它没有在屏幕上显示任何内容,只是
我有一个简单的 Angular 应用程序,它使用两个模板和 Controller 。放置两个按钮来切换 View 。它们调用在控件内定义的函数,该函数使用 window.location='' 来切换
我想要一个 div 切换它的类(切换)onclick,然后再次恢复到原来的类 onclick 我的代码是: function myfunc() { //the code over here
我确信这是一个常见问题,我已经尝试了该网站上的许多线程来尝试解决我的问题,但我似乎无法使其正常工作。基本上我有一个子菜单,当父菜单悬停在其上时需要显示该子菜单,但是如果您在加载完成之前将鼠标从菜单项上
我制作了一个 JavaScript 函数来隐藏单击按钮时的链接及其在该函数中的工作 function toggle() { var ele = document.getElement
我正在使用我在 JS fiddle 上找到的这个脚本:http://jsfiddle.net/Q4PUw/2/ 当我点击切换链接时,它会切换框并显示它,但是,它会跳回页面顶部,然后我必须再次向下滚动才
我正在 GoDaddy 上的共享服务器 IP 上构建 Web 应用程序。该应用程序与验证请求服务器 IP 的房地产 API 进行对话。问题是在 GoDaddy 上,我们的 IP 被列为 X,但它实际上
我在 jquery 中有一个简单的脚本,可以在 时切换 div(显示和隐藏)。被点击(我正在使用 Bootstrap )。 HTML: Advanced search This is t
我有两个 NSWindows,其中都有一个 NSPanel。我想在按下按钮时切换窗口。如何才能做到这一点?我不再需要旧窗口,所以我只想显示新窗口。 最佳答案 要聚焦第二个窗口,只需调用: [windo
我尝试在单击切换时将选项添加到选择菜单,但如果再次单击(取消选择),则可以将其删除。到目前为止,我可以在单击时向选择菜单添加单个值,但无法将其删除(切换添加切换删除) 这是我的代码: HTML
我正在尝试隐藏所属行。例如,如果您单击“子标题 1”,则将仅隐藏项目 1、项目 2 和项目 3 行。 示例: title Sub Title 1
似乎无法让它为我工作,任何人都可以为我提供帮助吗? http://codepen.io/anon/pen/kABjC 这应该根据点击打开和关闭文本部分,它采用 ID #,它只是一个数字(1,2,3,4
我正在从一个文件复制到另一个文件,并且我可以看到 Excel 在源文件和目标文件之间切换(如闪烁)。我希望宏从源复制并粘贴到目标,而不在文件之间切换(我不想闪烁)。 这里我得到了我的 Excel VB
我正在尝试制作一个带切换功能的 Accordion ,现在看起来效果很好。作为 javascript 的新手,我希望得到一些帮助,那就是它的组合方式。 http://jsfiddle.net/z3wW
我正在尝试制作一个小脚本,其中屏幕将每 100 毫秒随机更改一次背景颜色,您可以通过按一个按钮来打开和关闭它。我可以让它开始,但我不能让它停止。 这是切换的主要代码: var on = -1; fun
我确信这里应该已经涵盖了这一点,但我一直无法找到专门涉及此问题的问题。 我在一个页面中有 2 个 div,就像这样...... ...content... ...content...
我是一名优秀的程序员,十分优秀!