javascript 中的输出对象值
Output object values in javascript
我有一个 ObjectHtmlInputElement:
for($array as $a){
echo '<input type="checkbox" name="check[]" value="'.$a.'">';
}
Javascript:
function myForm(){
var theForm=document.getElementById("myCheck");
var a = theForm.elements['check[]'];
for( var i=0; i<a.length; i++){
if(a[i].checked){
alert( a[i].value );
return true;
}
}
}
此脚本检查是否至少选中了一个复选框,然后 return 为真(也可以选中更多复选框)。我需要的是在 alert() 中输出,每个已选中的复选框(通过 'a[i].checked')的每个对象值。 a[i].value ,只输出第一个值,所以我需要别的东西。
根据 'dec' 和 'vijay' 的回答我设法找到了解决方案:
var checkedCheckboxes="";
for( var i=0; i<a.length; i++){
if(a[i].checked){
checkedCheckboxes += a[i].value;
}
}
for( var i=0; i<a.length; i++){
if(a[i].checked){
alert('Checked: ' + checkedCheckboxes);
return true;
}
}
确实循环停止了,因为 return true as dec said.And 解决方案是进行另一个循环,并将所有值插入变量中以便我可以使用它在警报中。
使用 jquery 你可以做到:
function isThereAtLeastOneCheckActive() {
var res = false
$(':checkbox').each(function() {
if (this.checked) {
res = true
alert(this.val())
// .text() can also be used
}
})
return res
}
刚开始的时候,您可能会觉得缺少 ; 很奇怪
在 js 中不需要它们:https://mislav.net/2010/05/semicolons/
试试这个:
function myForm() {
var theForm = document.getElementById("myCheck");
var a = theForm.elements['check[]'];
var checkedCheckboxes = "";
for (var i = 0; i < a.length; i++) {
if (a[i].checked) {
checkedCheckboxes += a[i].value + ", ";
}
}
if (checkedCheckboxes.length > 0) alert(checkedCheckboxes);
return checkedCheckboxes.length > 0;
}
第一个值似乎匹配 a[i].checked
然后你 return 并且没有测试其他元素。所以删除 return true
.
我有一个 ObjectHtmlInputElement:
for($array as $a){
echo '<input type="checkbox" name="check[]" value="'.$a.'">';
}
Javascript:
function myForm(){
var theForm=document.getElementById("myCheck");
var a = theForm.elements['check[]'];
for( var i=0; i<a.length; i++){
if(a[i].checked){
alert( a[i].value );
return true;
}
}
}
此脚本检查是否至少选中了一个复选框,然后 return 为真(也可以选中更多复选框)。我需要的是在 alert() 中输出,每个已选中的复选框(通过 'a[i].checked')的每个对象值。 a[i].value ,只输出第一个值,所以我需要别的东西。
根据 'dec' 和 'vijay' 的回答我设法找到了解决方案:
var checkedCheckboxes="";
for( var i=0; i<a.length; i++){
if(a[i].checked){
checkedCheckboxes += a[i].value;
}
}
for( var i=0; i<a.length; i++){
if(a[i].checked){
alert('Checked: ' + checkedCheckboxes);
return true;
}
}
确实循环停止了,因为 return true as dec said.And 解决方案是进行另一个循环,并将所有值插入变量中以便我可以使用它在警报中。
使用 jquery 你可以做到:
function isThereAtLeastOneCheckActive() {
var res = false
$(':checkbox').each(function() {
if (this.checked) {
res = true
alert(this.val())
// .text() can also be used
}
})
return res
}
刚开始的时候,您可能会觉得缺少 ; 很奇怪 在 js 中不需要它们:https://mislav.net/2010/05/semicolons/
试试这个:
function myForm() {
var theForm = document.getElementById("myCheck");
var a = theForm.elements['check[]'];
var checkedCheckboxes = "";
for (var i = 0; i < a.length; i++) {
if (a[i].checked) {
checkedCheckboxes += a[i].value + ", ";
}
}
if (checkedCheckboxes.length > 0) alert(checkedCheckboxes);
return checkedCheckboxes.length > 0;
}
第一个值似乎匹配 a[i].checked
然后你 return 并且没有测试其他元素。所以删除 return true
.