jQuery怎么给一些相同NAME的按钮添加相同的动作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jQuery怎么给一些相同NAME的按钮添加相同的动作相关的知识,希望对你有一定的参考价值。

原先的代码是这样的
<script type="text/javascript">
$(function()
$("#cetegory_upload1").uploadify(
"formData" :
"timestamp" : "123",
"token" : "abc"
,
"swf" : "swfurl",
"uploader" : "phpurl",
"multi" : false,
"buttonText" : "上传图片",
"removeCompleted" : true,
"removeTimeout" : 1,
"fileTypeDesc" : "图片文件",
"fileTypeExts" : "*.gif; *.jpg; *.png",

"onUploadSuccess" : function(file, data, response)
if(data.indexOf("[sc]") >= 0 )
data = data.replace("[sc]","");
$("#_1_img").attr("value", data);
else
alert("上传图片失败!错误信息:"+data);



);
);
</script>
然后html文件域是这样的
<input id="upload1" name="upload1" type="file" multiple="true">
上传成功后会把返回的数据写到下面的文本框
<input type="text" name="_1_img" id="_1_img" class="upload_pic_input" />

以前我要是创建三个上传的文件域,就需要写3个上面的JS,只不过序号不同。能不能有一种方法我就写一段JS,所有相同NAME的元素都执行响应的动作?
写错了,文本框的HTML应该是
<input type="text" name="cetegory_upload1" id="cetegory_upload1" class="upload_pic_input" />

参考技术A 首先使用jQuery选择器选择到这些name的页面元素,比如$("input[name='xxx']")。

选择到指定元素之后,我们可以给他们都加上相应的事件,比如onclick事件。而且这边我们可以使用匿名函数方法,就是直接通过新建方法来绑定。代码如下:

$("input[name='xxx']").click(function()
code here;

)

这样就可以完成对指定name的元素的方法绑定了。
参考技术B $(function()
$('.up').each(function(index)
$(this).uploadify(
//代码......
);
);
)

<input id="upload1" class="up" name="upload1" type="file" multiple="true">
<input id="upload2" class="up" name="upload2" type="file" multiple="true">
<input id="upload3" class="up" name="upload3" type="file" multiple="true">追问

谢谢,那我中间代码怎么把数据写回到文本框里呢?

追答

你文本框是否也有多个呢?

追问

是的,每一个文件域搭配一个文本框

追答

你文本框是否也有多个呢?
如果,你的upload有三个,然后文本框也有三个,也好办啊
如:

你可以
$(function() $('.up').each(function(index) $(this).uploadify( //代码......
$("#_"+index+"_img").attr("value", index);
); );)

要巧用each里面的index

追问

INDEX这个参数是什么原理呢?

追答

怎么说呢?其实each相当于一个for循环啊,所以index就是那个for循环的控制变量咯

追问

太谢谢了,最后有个小问题,我文本框的id可能会变,能不能往文件域里面写一个属性值,比如uploadid="xxx"之类的,然后处理的时候就读取这个值,然后写入。

追答

其实html标签都能为其添加属性的,这样也可以啊,input也本身没有reg这个属性,记得采纳我的回答啊

本回答被提问者采纳
参考技术C cetegory_upload1是哪个元素?你直接取相同name的元素不行吗?

或者你给相同元素加一个class,然后用这个class来取啊!!追问

文本框那个HTML写错了..

小弟不太懂JS,能帮忙写一个么?

追答

额把这个:

$("#cetegory_upload1")

改成:

$("input[name='cetegory_upload1']")

再试一下!!

追问

就是我把NAME都写成一样的是吧。还有一个问题,我代码中间怎么写回到响应的文本框呢?我每一个文件域搭配一个文本框

追答

你要确保他们两两都是有关系的,给你两种建议:

    把他们两两放到一个div中,这样就可以在div中找到对应的了。

    他们如果是在不同表单中的话,你可以先找上传input的form,然后从form往下找。


反正你只要确定好他们的结构,就可以根据dom关系来找到他们了


望采纳Z!

Jquery 给多个含义相同class属性的元素,统一添加单击事件

Jquery 给多个含义相同class属性的元素,统一添加单击事件

这里用常规的 $(".className").click 发现不管用 那么就需要用到下面这个方法了
html:

<input type="button" class="delBtn" value="删除1"/>
<input type="button" class="delBtn" value="删除2"/>
<input type="button" class="delBtn" value="删除3"/>

js:

$(function(){
	$(".delBtn").on("click",function(){
		alert('删除成功');
	})
})

以上是关于jQuery怎么给一些相同NAME的按钮添加相同的动作的主要内容,如果未能解决你的问题,请参考以下文章

单击按钮 jquery 后是不是可以添加相同的现有 dom 结构?

当我单击具有相同类的列表中的按钮时,在顶部元素中添加类 - Jquery

怎么用javascript/jquery在当前页面获取动态添加的表单的name和值并且变成整个数组

android怎么用for循环给多个button按钮赋相同的值

每个radio的name都是不相同的,怎么用js或者jquery获取选中的每个radio值,然后拼成id串传到前台。

Jquery 给多个含义相同class属性的元素,统一添加单击事件