在对象的input value的输入框输入半角的双引号,request接受的时候value 就为空,如何可以控制让客户禁止输半角的算引号"" 问题,在keypess 的时候就控制禁止输入 谢谢。。

解决方案 »

  1.   

    <html>
    <head>
    <title>test</title>
    <script type="text/javascript">
    function testGG(){
       var xx = document.getElementById("xxx");
       xx.value = xx.value.replace(/\"/g,"”");

    }</script>
    </head>
    <body>
    <input type="text" onKeyUp="testGG()" id="xxx">
    </body></html>
      

  2.   

    <input id="a" type="text value='12"3"' />
    or
    <script>$F("a")="\"aaa\""
      

  3.   

    用户这么可能这么输入
    他输入的数据肯定是"aasssdfsdfssdfsdfsdfsdf" 结果我们接受的时候是空的
      

  4.   

    你不会教客户要这么输入吧\"aasssdfsdfssdfsdfsdfsdf\"最好就是让客户在半角输入的状态下,禁止输入" 是最佳方案,求也不想用repalce 的方法js控制,因为工程太大了,控制太多了,只是想在标签上写个keypess的时候控制它禁止输入高手,你在哪啊。指点下
      

  5.   

    他输入的数据肯定是"aasssdfsdfssdfsdfsdfsdf" 结果我们接受的时候是空的
    -----
    不是“接受的时候是空的”
    而是接受过后把它显示出来,就成了空的,<inpt value=""aasssdfsdfssdfsdfsdfsdf"">它显示的结果就是空的。从后台输出到前台的字符串
    要经过转码,
    并且输出到js里的和输出到html里的,它们的转码不一样。如果你用的是jsp,可以参考以下代码:
    /*
     * Created by Seamus
     * Updated on 2004-10-21 by JK
     *
     */
    package com.jk.util;public class  CommStr
    {
      /**
      *replace the old string to new string in the given destination string.
      */
      public static java.lang.String strReplace(java.lang.String destStr, java.lang.String oldStr, java.lang.String newStr)
      {
        if(destStr==null)
          return "";
        String tmpStr = destStr;
        int foundPos = tmpStr.indexOf(oldStr);
        while (foundPos>=0)
        {
          tmpStr = tmpStr.substring(0,foundPos) + newStr + tmpStr.substring(foundPos + oldStr.length(),tmpStr.length());
          foundPos = tmpStr.indexOf(oldStr,foundPos+newStr.length());
        }
        return tmpStr;
      }  /**
      *Encode for HTML.
      */
      public static String htmlEncoder(String str)
      {
        if(str==null || str.equals(""))
          return "";
        String res_str;
        res_str=strReplace(str,"&","&amp;");
        res_str=strReplace(str," ","&nbsp;");
        res_str=strReplace(str,"<","&lt;");
        res_str=strReplace(str,">","&rt;");
        res_str=strReplace(str,"\"","&quot;");
        res_str=strReplace(str,"'","&#039;");
        return res_str;
      }  /**
      *Encode for HTML-Text.
      */
      public static String htmlTextEncoder(String str)
      {
        if(str==null || str.equals(""))
          return "";
        String res_str;
        res_str=strReplace(str,"&","&amp;");
        res_str=strReplace(str,"<","&lt;");
        res_str=strReplace(str,">","&rt;");
        res_str=strReplace(str,"\"","&quot;");
        res_str=strReplace(str,"'","&#039;");
        res_str=strReplace(str," ","&nbsp;");
        res_str=strReplace(str,"\r\n","<br>");
        res_str=strReplace(str,"\r","<br>");
        res_str=strReplace(str,"\n","<br>");
        return res_str;
      }  /**
      *Encode for URL.
      */
      public static String urlEncoder(String str) {
        return java.net.URLEncoder.encode(str) ;
      }  /**
      *Encode for XML.
      */
      public static String xmlEncoder(String str)
      {
        if(str==null || str.equals(""))
          return "";
        String res_str;
        res_str=strReplace(str,"&","&amp;");
        res_str=strReplace(res_str,"<","&lt;");
        res_str=strReplace(res_str,">","&gt;");
        res_str=strReplace(res_str,"\"", "&quot;");
        res_str=strReplace(res_str,"\'", "&acute;");
        return res_str;
      }  /**
      *Encode for SQL.
      */
      public static String sqlEncoder(String str)
      {
        if(str==null || str.equals(""))
          return "";
        String res_str;
        res_str=strReplace(str,"'","''");
        return res_str;
      }  /**
      *Encode for Javascript.
      */
     public static String jsEncoder(String str)
     {
    if(str==null || str.equals(""))
     return "";
    String res_str;
    res_str=strReplace(str,"\\","\\u005C");
    res_str=strReplace(str,"'","\\u0027");
    res_str=strReplace(res_str,"\"","\\u0022");
    res_str=strReplace(res_str,"\r\n","\\u000A");
    res_str=strReplace(res_str,"\n","\\u000A");
    res_str=strReplace(res_str,"\r","\\u000A");
    res_str=strReplace(res_str,"/","\\u002F");
    return res_str;
     }
    }
      

  6.   

    <inpt value=""aasssdfsdfssdfsdfsdfsdf""> 那我后台提交request.geParament("input")就是空值"" 插入数据库都空来,还拿来的转化,这都是后谈...那位高手明白阿,,
    还要改textarea,真够晕了,要改的话,那不累死我,很多页面。。够呛。。那位高手指点js...
      

  7.   

    我现在目前应急的方法就是在input 域加了个 str=this.value.replace(/\"/g,"“");来转化,我想的是让他键盘根本就不让他输入""这个的时候...谢谢。大虾你何时出现。。
      

  8.   

    把form的method改为post,不要用get,或者加编码
      

  9.   

    我想的是让他键盘根本就不让他输入""
    -----
    这是无理要求。
    ----
    用户的输入要忠实的显示,
    你看看他输入"&nbsp;&quot;"是不是也失真了。