今天碰到一个奇葩的问题,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,跳出循环,执行循环外后面的代码!

工作中碰到的js问题(disabled表单元素不能提交到服务器)的更多相关文章

  1. html 5中的新特性之强化表单元素及属性

    之前我们判断用户提交的是否是Email 的时候,往往使用js 进行判断,但在html5中可以有新的方式进行判断而且更简单 <!DOCTYPE html> <html lang=&qu ...

  2. 前端笔记之React(二)组件内部State&React实战&表单元素的受控

    一.组件内部的State 1.1 state state叫状态,是每一个类式组件都有的属性,但函数式组件,没有state. state是一个对象,什么值都可以定义. 在任何类式组件的构造函数中,可以用 ...

  3. php-- 避免表单的重复提交

    用户提交表单时可能因为网速的原因,或者网页被恶意刷新,致使同一条记录重复插入到数据库中,这是一个比较棘手的问题.我们可以从客户端和服务器端一起着手,设法避免同一表单的重复提交. 1.使用客户端脚本 提 ...

  4. 通过getElementById来取得Form里的表单元素

    <1> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>湖南易通 ...

  5. Form表单元素

    Form表单元素 action method input: name value type: text password button radio checkbox file submit reset ...

  6. form表单元素中disabled的元素的值不会提交到服务器

    1.表单元素中disabled的元素的值不会提交到服务器,后台获取的值为null <form id="myForm" action="#" method= ...

  7. js replace 全局替换 以表单的方式提交参数 判断是否为ie浏览器 将jquery.qqFace.js表情转换成微信的字符码 手机端省市区联动 新字体引用本地运行可以获得,放到服务器上报404 C#提取html中的汉字 MVC几种找不到资源的解决方式 使用Windows服务定时去执行一个方法的三种方式

    js replace 全局替换   js 的replace 默认替换只替换第一个匹配的字符,如果字符串有超过两个以上的对应字符就无法进行替换,这时候就要进行一点操作,进行全部替换. <scrip ...

  8. js动态的往表格中加入表单元素

    效果如图: 这里我用的是layui的静态表格,其他框架也是一样的(只要你都表单元素要通过js进行渲染),我的需求是在表单中放了表格的元素,表格中还有表单的元素.表格中的行数据是js动态添加的,正常的添 ...

  9. ASP.NET MVC异步验证是如何工作的02,异步验证表单元素的创建

    在上一篇"ASP.NET MVC异步验证是如何工作的01,jQuery的验证方式.错误信息提示.validate方法的背后"中,了解了jQuery如何验证,如何显示错误信息,本篇要 ...

随机推荐

  1. java中遇到过的String的一些特性

    1.string对象是final的? String str="asdfdf"; str.replace("as",""); System.o ...

  2. 分享给大家的CSS书写规范、顺序

    写了这么久的CSS,但大部分前端er都没有按照良好的CSS书写规范来写CSS代码,这样会影响代码的阅读体验,这里总结一个CSS书写规范.CSS书写顺序供大家参考,这些是参考了国外一些文章以及我的个人经 ...

  3. easyui combobox 值怎样获取

    $('#com').combobox('getValue')获取当前选中的值$('#com').combobox('getText')获取当前选中的文字

  4. Castle ActiveRecord框架学习(一)

    一.Active Record(活动记录)模式 Active Record是业务逻辑层中(<企业应用架构模式>将该模式归为数据源模式)常用的一种框架模式,尤其在底层数据库模型匹配业务模型时 ...

  5. Redis系列二之事务及消息通知

    一.事务 Redis中的事务是一组命令的集合.一个事务中的命令要么都执行,要么都不执行. 1.事务简介 事务的原理是先将一个事务的命令发送给Redis,然后再让Redis依次执行这些命令.下面看一个示 ...

  6. 介绍开源的.net通信框架NetworkComms框架 源码分析(三)PacketHeader

    原文网址: http://www.cnblogs.com/csdev Networkcomms 是一款C# 语言编写的TCP/UDP通信框架  作者是英国人  以前是收费的 目前作者已经开源  许可是 ...

  7. 使用泛型元组替代out与ref形式传参

    我们在开发的时候,都会常常遇到一个问题,如何为逻辑上返回多个对象设计方法签名.通常我们会想到使用out或ref修饰参数,或者麻烦些自己设定一个类型内部包含多个Object类型属性来接收多个返回值.这两 ...

  8. setcookie第三个值为什么写0

  9. php实现中文字符串截取各种问题

    用php截取中文字符串会出现各种问题,做一简单汇总,文中的问题暂时还未解决,有大神解决了问题欢迎指教 <?php header('Content-Type:text/html;charset=u ...

  10. java 克隆

    1. About Java中, 对于基本数据类型可以使用"=" 来克隆,此时两个对象除了相等是没有任何关系的; 而对于引用类型, 却不能简单地使用"="来克隆, ...