你好我有html表,我列出了数据库结果。所有数据库项都有自带复选框,其值为项目ID:
<td> <input type="checkbox" id="row" value="<?php echo $this->escapeHtml($item->id);?>"> </td>
现在我想把一个或多个已检查的项目和该值放在我的网址中,就像上一个参数一样。
<a onclick="return Form.deleteItem(this);" href="<?php echo $this->url('phonebook', array('action'=>'edit', 'id' => '1'));?>">
<?php echo $this->escapeHtml('Edit');?>
</a>
我希望像这样在url中添加值。
因此,如果用户检查一个项目并单击编辑如何将该值放在url中,就像上一个参数
一样我试试这个但是不行:
deleteItem: function(obj) {
$('input[type=checkbox]').change(function(e){
e.preventDefault();
if ($("#row").is(':checked')) {
//read line
var queryString = $("#row").val();
// Loop
var s = $("#row").siblings();
$.each(s, function() {
// see if checked
if ($("#row").is(":checked")) {
queryString += 'OR' + $("#row").val();
}
});
console.log(queryString);
// Append to url
}
});
},
答案 0 :(得分:0)
我希望我帮到你。这是一个如何实现这一目标的例子。此代码会将所有选定值以逗号分隔为edit
或delete
路由。
<强> HTML 强>
<label><input class="row" type="checkbox" value="1"> 1</label>
<label><input class="row" type="checkbox" value="2"> 2</label>
<label><input class="row" type="checkbox" value="3"> 3</label>
<label><input class="row" type="checkbox" value="4"> 4</label>
<a class="action" href="http://www.example.com/edit/">Edit</a>
<a class="action" href="http://www.example.com/delete/">Delete</a>
<强>的JavaScript 强>
$('a.action').click(function() {
var v = $('input.row:checked').map(function () { return this.value; }).get().join(',');
$(this).attr('href', $(this).attr('href') + v);
});
映射和加入值的代码来自this answer。
<强>演示强>
答案 1 :(得分:0)
insertusernamehere绝对正确。您的HTML无效,jQuery函数只返回id为“row”的第一个复选框。这是一个例子:
HTML:
Row Checkboxes: <br />
<input id="row" type="checkbox" name="checkboxOne" value="yes" />
<input id="row" type="checkbox" name="checkboxTwo" checked="checked" value="yes" />
<br />
Test checkboxes:<br />
<input id="test" checked="checked" type="checkbox" name="checkboxThree" value="yes" />
<input id="test" type="checkbox" name="checkboxFour" value="yes" />
JS:
//returns false, because it gets the value of only the first #row checkbox
console.log($('#row').is(':checked'));
//returns true, because it only gets the checked attribute of the first #test checkbox
console.log($('#test').is(':checked'));
//only returns the first #row box
console.log(document.getElementById('row'))
请参阅小提琴:http://jsfiddle.net/Br85c/1/