专栏首页谈补锅工作中碰到的js问题(disabled表单元素不能提交到服务器)

工作中碰到的js问题(disabled表单元素不能提交到服务器)

今天碰到一个奇葩的问题,asp页面表单提交后,有一个文本框<input type="text" name="phone" id="phone" />在后台获取不了,

这个标签在form表单内,也有name属性,但是在后台就是获取不了这个标签的值,而其他的文本框、复选框都可以获取到,这可就奇怪了!

几经周折,终于找到了原因,原来我在提交表单的时候,name = "phone"这个标签此时在一个javascript事件中被禁用了,即完整的该标签状态为:

<input type="text" name="phone" id="phone" disabled />

从而导致在asp后台不能phone这个参数的值。意思应该是phone标签在客户端被禁用了,表单提交就不会提交到服务器去。

解决办法,是设置该标签为可读:<input type="text" name="phone" id="phone" readonly="readonly" />

这样的话,既保证了标签内的东西不能随便修改,也能够提交到服务器里去

-------------------------------------------------------------------------------

---------------------  其他js笔记 -----------------------------------------

------------------------------------------------------------------------------

1、图片预加载中,在谷歌浏览器获取图片的宽高为0px,代码如下:

var img = new Image();

img.src=”images/1.jpg”;

var width=img.width+20;var height=img.height+75;

这段代码在IE/Firefox浏览器中,是能够获取到img对象的宽度和高度,但是在谷歌浏览器中获取宽高的值为0px。

  什么原因?

  应该是这段代码,在谷歌浏览器中图片还没加载完,此时获取图片的宽度和高度自然是0px。解决办法,应该写成:

var img = new Image();

img.onload=function(){

  var width = img.width+20;

  var height = img.height+75;

}

img.src=”images/1.jpg”;

  这样后不管在IE/Firefox, 还是在Google浏览器中,都可以获取图片对象的宽高了

2、想实现一个功能,页面有一个div区域,需要做到点击这个div区域外的其他地方,关闭这个div区域。所以需要做到获取鼠标的坐标,然后根据坐标位置和这个div的位置来隐藏:

//监听鼠标点击
document.onmousedown = function (event) {
    var xPos, yPos; //鼠标坐标
    event = event || window.event;
    if (event.pageX) {
        xPos = event.pageX;
        yPos = event.pageY;
    } else {
        xPos = event.clientX + document.body.scrollLeft - document.body.clientLeft;
        yPos = event.clientY + document.body.scrollTop - document.body.clientTop;
    }

    var tmpObjs = $(".birDetailOn"); //需要隐藏的div块(可能有多个这种div)

    if (tmpObjs.length > 0) {
        var isHidden = true;

        for (var i = 0; i < tmpObjs.length; i++) {
            var obj = tmpObjs[i];
            var top = $(obj).offset().top;  //该div的距离顶部的位置
            var left = $(obj).offset().left;  //距离左边的位置
            var width = obj.offsetWidth;    //该div的宽度
            var height = obj.offsetHeight;  //该div的高度
        
        //判断鼠标坐标是否在div区域之内(在div区域内,就不隐藏该div)
            if (xPos >= left && xPos <= (left + width) && yPos >= top && yPos <= (top + height)) {
                isHidden = false;
            }
        }

        if (isHidden) $(".birDetailOn").css({ "display": "none" }).removeClass("birDetailOn");
    }
}

3、JS中for循环支持break、continue、return关键字,效果和C#一样(break跳出循环,continue跳过当前循环,return方法里循环后所有代码都不在执行);

  对于each循环,不支持break和continue关键字,支持return,return就像是for循环里面的continue关键字效果一样,碰到return当前循环的后面代码不再执行,执行下一个循环;

  each支持return false,碰到return false就像相当于for循环中break,跳出循环,执行循环外后面的代码!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • web页面和小程序页面实现瀑布流效果

      2、小程序实现瀑布流,大致流程差不多。只不过小程序的图片的宽高度的获取没有web页面那么方便。

    tandaxia
  • CSS笔记

    @import url(xx.css): 在一个css中,添加对其他css文件的引用

    tandaxia
  • Vue官方文档笔记

    当一个Vue实例(如上面的vm)被创建后,它将data对象里面的所有的属性加入到Vue的响应式系统中。当这些属性的值发生改变时,视图会产生“响应”, 即视图展示...

    tandaxia
  • BEM 简介

    BEM 是一种前端项目开发的方法学,由 Yandex 公司提出。BEM 的名称来源于该方法学的三个组成部分的英文首字母,分别是块(Block)、元素(Eleme...

    Joel
  • NYOJ 19 擅长排列的小明(dfs递归)

    这道题和组合数那道题我觉得差不多,两道题可以一起写一下,对比一下,能更好的理解递归思想。

    Ch_Zaqdt
  • Activiti开发案例之activiti-app工作流导出图片

    自从 Activiti 和 JBPM4 分家以后,Activiti 目前已经发展到了版本7,本着稳定性原则我们最终选择了6,之前还有一个版本5。

    小柒2012
  • 在Oracle中,分布式事务ORA-01591错误如何解决?

    这个错误是由于分布式事务引起,而不是普通的锁引起的。若检查一般对象数据表锁定,则只需要检查V$LOCKED_OBJECT和V$TRANSACTION视图,就可以...

    小麦苗DBA宝典
  • 一文读懂递归算法

    来源 | https://www.61mon.com/index.php/archives/208/

    五分钟学算法
  • 手机发烫是为何:App 电量测试定位方法

    随着移动互联网的快速发展,手机的实用性、娱乐性越来越强。日常使用中发现,安装了应用后,即使不怎么使用,电量也会消耗很快。但如果恢复出场设置充满电后,手机可以待机...

    腾讯移动品质中心TMQ
  • ​Mockplus新年福利来了!见者有份!

    2019年春节将至,Mockplus在大家的陪伴下又走过一个年头,为感谢大家对Mockplus的喜爱与支持,给大家送福利了!

    奔跑的小鹿

扫码关注云+社区

领取腾讯云代金券