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" />
选择到指定元素之后,我们可以给他们都加上相应的事件,比如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")改成:
再试一下!!
追问就是我把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按钮赋相同的值