是否有更有效的方法来存储我的复选框值?
每个复选框都有一个赋值,我想知道是否有更好的方法来存储这些值(destinationoflink1,2,3等)?也许将它们存储为数组并调用它们?...虽然我不确定
HTML页面提取:
<form>
<label for="checkbox1">Link #1</label>
<input type="checkbox" id="checkbox1" value="http://www.destinationoflink1.com">
<label for="checkbox2">Link #2</label>
<input type="checkbox" id="checkbox2" value="http://www.destinationoflink2.com">
<label for="checkbox3">Link #3</label>
<input type="checkbox" id="checkbox3" value="http://www.destinationoflink3.com">
<input type="button" value="open links" id="open_link"/>
</form>
Javascript文件提取(如果有用):
$("#open_link").click(function() {
performOpenLink();
})
function performOpenLink(){
$("input[type=checkbox]").each(function() {
if (this.checked) {
window.open(this.value)
}
});
}
答案 0 :(得分:1)
您可以使用数组
动态生成复选框修改后的HTML
<form>
<div id="checkbox_container"></div>
<input type="button" value="open links" id="open_link"/>
</form>
修改后的JavaScript
var destinations = [
{'label': 'Checkbox1', 'value' : 'http://www.destinationoflink1.com'},
{'label': 'Checkbox2', 'value' : 'http://www.destinationoflink2.com'},
{'label': 'Checkbox3', 'value' : 'http://www.destinationoflink3.com'}
];
$(function(){
// document onReady
for (var i=0; i<destinations.length; i++){
// add the label:
$('#checkbox_container').append('<label for="' + destinations[i].label + '">Link #' + i + '</label>');
// add the checkbox:
$('#checkbox_container').append('<input type="checkbox" id="'+ destinations[i].label+'" value="' + destinations[i].value + '" >');
}
});
$("#open_link").click(function() {
performOpenLink();
});
function performOpenLink(){
$("input[type=checkbox]").each(function() {
if (this.checked) {
window.open(this.value)
}
});
}
这将循环遍历数组,并根据每个数组项的属性构建label
和checklist
html。通过将值放入数组中,您可以更轻松地稍后添加(或删除)新的清单值
这是 jsFiddle
更新:我修复了我在代码中留下this
的问题。替换为destinations[i]
答案 1 :(得分:0)
这是另一种方法......
session_start();
if (isset($_SESSION['level']) && (int) $_SESSION['level'] === 1) {
echo '<a>Link for admin</a>';
}
这是 fiddle
它不会在chrome中打开多个标签,但它在firefox中完美运行(对我来说是v38.0)..