公司网站如何制作设计,全国做网站的公司,延安网站开发,wordpress调用推荐文章代码相信有人也曾遇到过这种问题#xff0c;今天将这个问题稍作整理发布出来。由于编码的问题传值出现乱码#xff0c;一看到这样的情况#xff0c;我们首先想到的是线面的两种解决办法#xff1a;方案一#xff1a;在接收参数页面进行转码 (这是较为理想的解决办法)方案二今天将这个问题稍作整理发布出来。由于编码的问题传值出现乱码一看到这样的情况我们首先想到的是线面的两种解决办法方案一在接收参数页面进行转码 (这是较为理想的解决办法)方案二改变提交页面的编码方式以上解决办法如果让我选择那当然选择方案一了。可是我是一名页面制作人员无法处理开发的程序所以再来看方案二。该列表页以及详细页面均会提交数据看了这么多的页面再想 有可能别的地方还会遇到不同编码传递数据的问题所以很显然 方案二并不是很理想。有没有一种办法是在提交数据之前将内容转码后再提交呢这样既不用通过开发调整接收端程序也不用改变页面原有的编码。有了这种念头自然想到用JS来实现。太美好了在JS中所提供的document.charset可以做到这一点不过这个方法只局限于IE使用要兼容Firefox及其他浏览器需要用到另外一种方法 form.acceptCharset (该方法属性由王昊提供)以上两种方法在使用中必须注意charset方法使用document就可以不过acceptCharset必须指定到该form才可以正常使用。以下是实际应用的代码(将代码保存为html格式即可预览)function CheckPD(theForm){var name1 theForm.name1.value;if (name1 “”){alert(“请输入您的姓名”);theForm.name1.value”;theForm.name1.focus();return false;}if (theForm.name1.value.length 2 || theForm.name1.value.length4){alert(“错误名字应在2-4个字之间”);theForm.name1.focus();return (false);}if (name1.search(/[1234567890-\~!#$%^*()_|;:,.?/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]/) ! -1){alert(“请务必输入简体汉字”);theForm.name1.value “”;theForm.name1.focus();return false;}var name2 theForm.name2.value;if (name2 “”){alert(“请输入您爱人的名字”);theForm.name2.value”;theForm.name2.focus();return false;}if (theForm.name2.value.length 2 || theForm.name2.value.length4){alert(“错误名字应在2-4个字之间”);theForm.name2.focus();return (false);}if (name2.search(/[1234567890-\~!#$%^*()_|;:,.?/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]/) ! -1){alert(“请务必输入简体汉字”);theForm.name2.value “”;theForm.name2.focus();return false;}setTimeout(function(){document.charset’UTF-8′;document.form2.acceptCharset’UTF-8′},1);}//–姓名:单姓复姓男女姓名:单姓复姓男女以上案例中要注意 form 的onSubmit执行了我之前讲到的两种方法可是在IE下面所执行的是document.charset 该方法是全局性的所以改变了整个页面的编码格式由于UTF-8和gb2312两者对字符的默认解释不通所以整个页面会出现意想不到的变化。这个时候 我们在CheckPD()函数中加了最后一句 setTimeout 这个方法让其在1毫秒之后又改变回原来的编码格式。这样做之后在提交表单时真个页面给人的感觉是小闪一下(这是目前存在的BUG还未解决)OK 到目前为止上面这段代码已经可以在市场上的主流浏览器中正常使用了。以上方法如果您觉得不完美或者您有更好的解决办法请回复描述一下您的方法让我们共同进步。