JQuery搞乱我的表单行情

时间:2011-10-02 16:22:06

标签: jquery

我有一个使用.delegate将表单输入验证应用到表单的表单,但是看起来任何带引号的表单都会消失。没有错误,引号就会消失。任何人都知道为什么会这样吗?唯一的解决方法是在文本框中输出默认值为& #34;否则,引号不会出现在文本框中,即使它实际上在值(视图源)中。

输入类型=“文本”也使用CSS3样式,不确定这是否与它有任何关系..

基本上,输入类型=“text”value =“quotes”“”或value =“quotes”“只会在呈现的html中显示'引号',而源中包含正确的值。

它仅在文本框上执行此操作,该文件框由.delegate代码定位,该代码在文本框上应用“模糊”“焦点”,该函数只是添加类并检查是否val()=“”...文本框中的实际值未在.delegate函数中传递。

委托代码中唯一的文本框:

    if ($(this).val()=="")
    if ($("#divid").val()=="")

1 个答案:

答案 0 :(得分:0)

你必须逃避引号:

使用"(不用于标记属性)。 使用"构建字符串时,应使用\"转义属性标记。

示例:

  • "<input type=&quot;text&quot;>" 错误,无法使用&quot;标记属性
  • "<input type="text">" 错误,内部引号必须转义
  • "<input type=\"text\">确定,正确转义。
  • "<input value=\"&quot;\">" 确定,正确转义。解析为输入字段,其值为引号(")。

修改

澄清:单引号中的<input type="text" value="quotes""">(`) OR HTML源代码以这种方式解释:

  1. 检测到<input开始标记。
  2. 找到名为type
  3. 的属性
  4. type属性的值为=
  5. =字符后面的第一个非空白字符是引用"。在此报价之后搜索报价的第一次出现..
  6. 找到最终报价,type的值为type

  7. 找到了另一个属性:value
  8. 该属性定义了一个值,因为找到了=
  9. 第一个非空白字符是引号。在此报价后搜索下一个报价。
  10. 找到引号,value属性的值为quotes

  11. 寻找下一个属性......
  12. 发现了意外的""。忽略。
  13. 找到关闭标记,最终解析的元素为:<input type="text" value="quotes">
  14. 当使用双引号"定义JavaScript字符串时,之前使用的子字符串将导致JavaScript错误:"<input type=" text 。 JS解释器在结束引用后发现了一个意外的字符:t