在js中怎样获得checkbox里选中的多个值

在js中怎样获得checkbox里选中的多个值,第1张

举个例子,比如如下是HTML的结构:

这里推荐使用jQuery库,比较方便。以下是代码:

大致思路就是:先利用name属性值获取checkbox对象,然后循环判断checked属性。(true表示被选中,false表示未选中)

具体解释一下:

首先用documentgetElementsByName()这个方法,通过input标签的name属性将input元素获取,并存进obj这个变量值中。然后建一个check_val的数组,通过for循环将input标签的value值存入数组中,这样就可以获取checkbox的选中的多个值。

扩展资料:

Checkbox 对象代表一个 HTML 表单中的 一个选择框。

在 HTML 文档中 <input type="checkbox"> 每出现一次,Checkbox 对象就会被创建。

您可以通过遍历表单的 elements[] 数组来访问某个选择框,或者通过使用 documentgetElementById() 。

参考资料:

MDN—关于CheckBox属性

package test;

import javabeansIntrospectionException;

import javabeansPropertyDescriptor;

import javalangreflectInvocationTargetException;

import javalangreflectMethod;

import javautilArrayList;

import javautilArrays;

import javautilIterator;

public class AList extends ArrayList<A> {

/

  

 /

private static final long serialVersionUID = -5626405721508120479L;

public A getSubject(String name, Object value)

throws IllegalAccessException, IllegalArgumentException,

InvocationTargetException, IntrospectionException {

A[] result = getSubjects(name, value);

if (resultlength <= 0)

return null;

else

return result[0];

}

public A[] getSubjects(String name, Object value)

throws IntrospectionException, IllegalAccessException,

IllegalArgumentException, InvocationTargetException {

PropertyDescriptor pd = new PropertyDescriptor(name, Aclass);

Method getter = pdgetReadMethod();

Iterator<A> it = thisiterator();

A[] result = new A[0];

while (ithasNext()) {

A obj = itnext();

Object theValue = getterinvoke(obj);

if (theValue != null && theValueequals(value)) {

result = ArrayscopyOf(result, resultlength + 1);

result[resultlength - 1] = obj;

}

}

return result;

}

public static void main(String[] args) throws IllegalAccessException,

IllegalArgumentException, InvocationTargetException,

IntrospectionException {

AList al = new AList();

A a = new A("张三");

asetAge(18);

asetGender("男");

asetSchool("XX大学");

A b = new A("李四");

bsetAge(20);

bsetGender("男");

bsetSchool("XX大学");

A c = new A("王五");

csetAge(18);

csetGender("女");

csetSchool("XX大学");

aladd(a);

aladd(b);

aladd(c);

Systemoutprintln(ArraystoString(algetSubjects("name", "张三")));

Systemoutprintln(ArraystoString(algetSubjects("age", 18)));

Systemoutprintln(ArraystoString(algetSubjects("gender", "男")));

Systemoutprintln(ArraystoString(algetSubjects("school", "XX大学")));

// [A [name=张三, age=18, gender=男]]

// [A [name=张三, age=18, gender=男], A [name=王五, age=18, gender=女]]

// [A [name=张三, age=18, gender=男], A [name=李四, age=20, gender=男]]

// [A [name=张三, age=18, gender=男], A [name=李四, age=20, gender=男], A [name=王五, age=18, gender=女]]

}

}

class A {

private String name;

private int age;

private String gender;

private String school;

public String getSchool() {

return school;

}

public void setSchool(String school) {

thisschool = school;

}

public A(String name) {

super();

thisname = name;

}

public String getGender() {

return gender;

}

public void setGender(String gender) {

thisgender = gender;

}

public int getAge() {

return age;

}

public void setAge(int age) {

thisage = age;

}

public String getName() {

return name;

}

public void setName(String name) {

thisname = name;

}

@Override

public String toString() {

return "A [name=" + name + ", age=" + age + ", gender=" + gender + "]";

}

}

java是不支持在运行中进行强制转化的! 如果事先知道类型,可以通过强制转化实现! 如果不知道! 可以采用这种方式!

String className = objgetClass()getName(); 得到类名

然后:

A a = (A)ClassforName(className)newInstance();

//上面这句话的意思是,forName(className):静态加载className这个类;

// newInstance(),实例化一个对象

// A 代表你知道的这人类或者这个类的父类, 把强制转化成你所要的对象。

这和你

A a = new A();

是一样的效果!

你写错了,js里面documentgetElementById(ID)是通过标签的id值获取标签对象的这个方法是获取的一个对象;而documentgetElementsByName(NAME)是通过标签的name值获取标签对象的,他的返回值是一个数组。

创建对象有多种方法,我们来一一对比看看区别,再分析他们的差异。

同样是创建一个对象,为什么得到的值不一样呢?

new Object() 通过构造函数来创建对象, 添加的属性是在自身实例下。

Objectcreate() es6创建对象的另一种方式,可以理解为继承一个对象, 添加的属性是在原型下。

通过Objectcreate()创建的对象属性是挂在原型上,而不是实例上,虽然还是可以通过cname获取到lily,但不是他本身的属性。

我们具体看看这两个方法的用法及参数

这里创建的对象C的属性name的默认描述为不可配置、不可枚举、不可写入,参考上一篇 对象的ObjectdefineProperty

还有一点我们需要注意,这里创建C时对应的原型为{},也可以通过原型链找到toString方法,那如果换一种方式我们看看

这里可以看到c的原型换成了null,没有继承Object的原型链上面的方法, 所以如果我们使用new Object()创建一个空对象时,它会继承Object的原型链,但如果我们使用Objectcreate()创建一个空对象时它时没有原型的。

代码 请收下~~~~

<body>

<span class="okdog" lay-id="user1">1只狗</span><span class="okdog" lay-id="user2">2只狗</span><span class="okdog" lay-id="user3">3只狗</span><span class="okdog" lay-id="user4">4只狗</span><span class="okdog" lay-id="user5">5只狗</span>

<div id="showdog">输出结果</div>

<script>

var res = documentgetElementsByClassName('okdog');

for(var i=0;i<reslength;i++){

    res[i]addEventListener('click',function(e){

       alert(esrcElementinnerHTML)

    },false);

}

</script>

</body>

自己实现,把A a1改成用宏实现

譬如#define CLASS(A) class A /

{

string getClassName() { return "A"};

}

之类的。。。

以后定义类全都用这个宏。。。

只是个思想,MFC经常用这套

以上就是关于在js中怎样获得checkbox里选中的多个值全部的内容,包括:在js中怎样获得checkbox里选中的多个值、java根据对象属性从对象列表中取出对象、java 如何通过对象获取对象类全名等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9504090.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存