js - 在拼接字符串中动态submit当前form
今天在做一个项目的时候, mapabc中的inforWindow中,如果是超链接a,不直接响应.
后来的解决方案是动态产生form,并调用summit方法.如下
自定义一个js函数:
- function subf(val) {
- document.getElementById(val + 'frm').submit();
- }
在html中, 由于我发现在直接拼接字符串时, 如果有很多单引号和双引号同时使用,这时在拼接字符串的时候,会很麻烦.
我的解决方案是, 传递当前控件的id, (如上)在获取控件的id时, 在添加新的内容,以区分控件id.
- <form id='okok' name='okok' action='monitor/lock_fence_monitor'>
- <input type='button' id='okok' onclick='subf(this.id);' />
- </form>
这里, 使得form中的id和button的id相同, 是为了从变量中获取值的时候,方便使用.例如
- "<form id='" + lid + "frm' name='canyou' action='monitor/lock_fence_monitor'>
- <input type='button' value='" + lid + "' id='" + lid + "' onclick='subf(this.id);'/>
- </form>";
这样, form的id和button的id都是动态的.
相反,如果不使用 this关键字,如下:
- <form id='ftest' name='ftest' action='monitor/lock_fence_monitor'>
- <input type='button' id='okok' onclick="subf('bid');" />
- </form>
这时在拼接字符串时的难度会很大(我觉得,可能大家觉得拼接字符串很容易).
真是困难重重, 后来发现inforWindow中如果直接提交,在Action中竟然无法接受到参数的值.
后来的解决方案是,在以上的subf函数中,调用父窗口的另一个form,让父窗口中的form进行提交.
基本代码为:
html中:
- <form action="monitor/lock_fence_monitor" id='fparent'>
- <input type="text" value="" id='name' name="name" /><br /> <input
- type="submit" value="do" />
- </form>
js函数:
- //提交infowindows.
- function subf(val) {
- //console.log('v=' + val);
- var n = document.getElementById('name');
- n.value = 'lll';
- document.getElementById('fparent').submit();
- }
js中进行字符串拼接:
- "<form id='"
- + lock
- + "frm' name='form_info' action='monitor/lock_fence_monitor?IMEI=jus'><ul><li><input name='IMEI' type='button' value='"
- + lock + "(点击查报警日志)编号'id='" + lock
- + "'onclick='subf(this.id);'/></li><li>回传间隔:" + returnInterval
- + "</li><li>上次开锁次数:" + previousOpenedTotalTimes
- + "</li><li>当前开锁次数:" + currentOpenedTotalTimes
- + "</li><li>上次状态:" + previousStatus + "</li><li>当前状态:"
- + currentStatus + "</li><li>上传原因:" + uploadReason
- + "</li><li>数据量:" + dataVloume + "</li><li>连接基站信息:"
- + connectStationInfo + "</li><li>经度:" + longitude
- + "</li><li>经度信息:" + longitudeInfo + "</li><li>纬度:" + latitude
- + "</li><li>纬度信息:" + latitudeInfo + "</li><li>位置:" + location
- + "</li><li>速度:" + speed + "</li><li>方向:" + direction
- + "</li></ul></form>";
所以,流程,就是在动态的input(如button)中,通过onclick方法, 然后通过js函数,接受input的value,赋值给父窗口中的控件,让父窗口中的控件携带其值,并通过父窗口的form进行提交.
js - 在拼接字符串中动态submit当前form的更多相关文章
- js如何替换字符串中匹配到多处中某一指定节点?
抛出一个问题,如图,搜索关键字,匹配到四处,那我鼠标放在第二处,我想把它变个颜色,该怎么实现呢?回到文章的标题,js如何替换字符串中匹配到多处中某一指定节点? 字符串的替换,我们首先想到的一个属性是r ...
- JS正则表达式获取字符串中特定字符
JS正则表达式获取字符串中得特定字符,通过replace的回调函数获取. 实现的效果:在字符串中abcdefgname='test'sddfhskshjsfsjdfps中获取name的值test 实 ...
- JS求任意字符串中出现最多的字符以及出现的次数
我爱撸码,撸码使我感到快乐!大家好,我是Counter本节讲讲如何利用JS来查找任意给定的字符串,求字符串中出现次数最多的字符,出现的次数.直接上代码了,该注释的都注释啦.非常轻松加愉快.效果如下: ...
- Node.js之判断字符串中是否包含某个字符串
server.txt内容如下: 阿里云服务器 关于应用场景,就不多说了,字符串是不论是后端开发还是前端开发等,都是要经常打交道了. test.js(node.js代码,只要被本地装了node.js环境 ...
- JS 从一个字符串中截取两个字符串之间的字符串
/************************************************* 函数说明:从一个字符串中截取 两个字符串之间的字符串 参数说明:src_str 原串, start ...
- js 高效拼接字符串
<script>//如果我们大量使用+=进行字符串拼接的话,将会使界面失去响应(卡死状态) //高效拼接字符串 var StringBuilder=function() { this.da ...
- JavaScript(js)文件路径字符串中丢失"\"斜线的解决方法
在刚刚的开发过程中,遇到一个JavaScript 文件路径字符串中丢失"\"的问题,解决过程如下: 背景:cs文件中获取一段包含有路径信息的字符串,将此字符串做为参数传递给前台as ...
- js 统计一个字符串中出现的字符最多的字符
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- js判断一个字符串中出现次数最多的字符及次数
最近面试总是刷到这个题,然后第一次的话思路很乱,这个是我个人思路 for循环里两个 if 判断还可以优化 var maxLength = 0; var maxStr = ''; var count = ...
随机推荐
- nodemon
使用nodemon让node自动重启 开发环境,修改代码服务器自动重启 npm install -g nodemon nodemon app.js
- -_-#【Better Code】
i++ 与 ++i 的性能区别 if (true) { console.log('hi') } if (!false) { console.log('hi~') } true && c ...
- ecshop模板修改后还原的原因
转:http://www.ecmoban.com/article-1693.html 有些刚接触 ecshop的朋友会遇到这样的问题:今天刚修改好的一个地方,等过一段时间后台操作了一会之后发现修改过的 ...
- Android-webView的loadUrl
1 //打开本包内asset目次下的test.html文件 wView.loadUrl(" file:///android_asset/test.html "); 2 //打开本地 ...
- JavaScript修改表中的内容
例子: <?php ?> <html> <head> <meta http-equiv="Content-Type" content=&q ...
- <转>如何将Chrome变成开发利器,开发者们在用这些插件
Chrome 浏览器具有强大的跨平台能力以及丰富的扩展插件,一直是许多开发者的首要选择.而利用许多 Chrome 插件,开发者们在开发流程中能够极大地提高开发效率.我们就整理了十款开发者常用的 Chr ...
- 【转】qtp安装时问题
1.安装qtp后要重启机器. 2.插件选择错误, 处理方式:重新启动QTP,勾选 WEB插件; 3.在安装QTP后,或者禁用IE浏览器里的一些ActiveX控件后,正常录制QTP时,对象识别不了;(保 ...
- 设置Div多行文本超出时,以省略号代替
这个文章不错 http://www.css88.com/archives/5206 css中有一个属性: text-overflow,可以设置文本超出指定长度后的文本截取样式. 下面是从 w3shco ...
- 简单的ALloctor模板
template <typename T>class Alloctor{private: typedef T* address; T *memory,*t; size_t total_si ...
- JDBC_demo:java连接mysql过程
1.任何数据库驱动程序都提供对java.sql.Driver接口的驱动类,mysql-connector-java-5.1.39-bin.jar中Driver: package com.mysql.j ...