单击时从表单中删除特定文本
Delete specific text from form when clicked
基本上,我想制作一个函数,当点击文本时,它会在表单上打印"id"。当再次点击时,只会删除"id"(保留之前点击/打印的"id")。
到目前为止,我拥有的打印脚本:
function imprime01(obj) {
document.form2.text.value = document.form2.text.value + obj.title;
}
div
<div onclick="imprime01(this);" title="240 ">240</div>
<div onclick="imprime01(this);" title="230 ">230</div>
<div onclick="imprime01(this);" title="220 ">220</div>
所以我想要的是:当我点击240230时,它会在表单上打印"240230",当我再次点击"240"时,它只会从表单中删除"240"。有办法做到这一点吗?
有很多方法可以做到这一点。
我会把你的id存储在一个数组中。在您的点击处理程序中,测试数组中是否存在id,如果存在则将其删除,否则添加。然后将数组中的所有id写入文本框:
var idList = [];
function imprime01(obj) {
var id = obj.title;
var idIndex = idList.indexOf(id);
if (idIndex > -1) {
idList.splice(idIndex, 1);
}
else {
idList.push(id);
}
document.form2.text.value = idList.join(" ");
}
这可能比简单的字符串替换更复杂,但它为您提供了以后可能有用的其他功能。例如,如果程序的另一部分需要知道选择了哪些id,那么它们在数组中已经可用。
编辑:您可以使用string.split(" ")
:在点击处理程序中动态生成数组,而不是将数组存储在变量中
function imprime01(obj) {
var id = obj.title;
var idList = document.form2.text.value.split(" ");
var idIndex = idList.indexOf(id);
if (idIndex > -1) {
idList.splice(idIndex, 1);
}
else {
idList.push(id);
}
document.form2.text.value = idList.join(" ");
}
工作演示:http://jsfiddle.net/gilly3/qWRct/
请参阅http://jsfiddle.net/BdEMx/
function imprime01(obj) {
var arr=document.form2.text.value?document.form2.text.value.split(' '):[];
var i=arr.indexOf(obj.title);
if(i===-1){
arr.push(obj.title);
}else{
arr.splice(i,1);
}
document.form2.text.value = arr.join(' ');
}
您不应该仅仅因为想要加入其中一些属性而在title
属性的末尾添加空格。
使用replace
和indexOf
函数:
var str = document.form2.text.value;
if(str.indexOf(obj.title) != -1)
document.form2.text.value = str.replace(obj.title,"");
else
document.form2.text.value = str + obj.title;
相关文章:
- 兰吉 |如何在 span 标签上使用单击事件删除突出显示的文本
- JavaScript-如果以前不存在文本,如何从文本区域删除新行
- 如何动态添加和删除多个类名的文本
- jQuery从标签中删除括号/文本
- 单击文本时删除文本框的默认数据
- 添加/删除/更改输入文本的部分值
- 在显示/隐藏中单击时删除的文本
- 单击时从表单中删除特定文本
- 使用VBScript或Javascript从文本框(文本区域)中删除最后一行空/空行
- 使用删除文本创建新行
- Wordpress TinyMCE在从文本切换到视觉时,如果锚标记包裹块元素,则会删除锚标记
- 为什么jQuery正在删除文本的最后一个字符
- 如何删除特定文本短语的所有实例
- 通过点击文本区域添加和删除多个标签
- 隐藏<标签>abc标签>之间的文本 - 删除“ ABC”
- JavaScript 拆分字符串 选定的文本删除
- jQuery淡入/淡出替换文本删除链接
- 遍历元素列表并根据内部文本删除元素上的游标样式
- 将逗号后的文本删除到行尾
- 需要有关jQuery条件的帮助,该条件基于匹配的文本删除容器元素