jquery:appendTo在隐藏字段中丢失stripslashes

时间:2013-04-18 19:40:35

标签: php jquery regex dom appendto

正在开发使用PHP和jQuery创建表单的前端实用程序;我可以添加几个特定的​​字段,以后将在表单上使用,哪些参数存储在图形界面的dinamically插入的隐藏字段中。到目前为止,一切工作正常,但我偶然发现了一个问题,即将字段添加到显示中的代码(以后会解析它以生成最终的表单数据);在包含参数的注入DIV中,存储在隐藏字段中的正则表达式的反斜杠被剥离。以下是代码的一部分:

var fieldsNumber =1; //this determines the field id of the inserted feature
fieldCenterHtml =   '<div class="formFieldCenterArea">'
        +   '<div class="formParamContainer"><label>Default value:</label><input type="text" name="field_'+fieldsNumber+'_value" value=""/></div>' 
            +   '<input type="hidden" name="field_'+fieldsNumber+'_type" value="phone_number"/>'
        +   '<input type="hidden" name="field_'+fieldsNumber+'_firstValue" value=""/>'
        +   '<input type="hidden" name="field_'+fieldsNumber+'_valueList" value=""/>'
        +   '<input type="hidden" name="field_'+fieldsNumber+'_hasRegex" value="1"/>'
        +   '<input type="hidden" name="field_'+fieldsNumber+'_regex" value="/^[(]?\d{3}[)]?\s?-?\s?\d{3}\s?-?\s?\d{4}$/"/>' 
        +   '<input type="hidden" name="field_'+fieldsNumber+'_hasSize" value="0"/>'
        +   '<input type="hidden" name="field_'+fieldsNumber+'_size" value="0"/>'
    +   '<div class="formParamContainer"><label>is Required:</label><input type="checkbox" name="field_'+fieldsNumber+'_isRequired"  value="1" /></div>';
        +   '</div> <!-- end formCenterField --'+'>';

//the injecting code

fieldDataHtml = fieldCenterHtml;


    //insert the field in the DOM

        var element = $('<div/>', {
        class: 'element',
        html: fieldDataHtml
    }).appendTo('#form-area-container');

当字段插入页面时,field_1_regex显示如下:

<input type="hidden" value="/^[(]?d{3}[)]?s?-?s?d{3}s?-?s?d{4}$/" name="field_1_regex">

并丢失正则表达式中的所有反斜杠。 我怀疑appendTo正在剥离DOM中插入的反斜杠;我怎么能解决这个问题?

working example在jsFiddle上。

[编辑]解决了;我决定预测正则表达式字段的数量,推动空字段,并在使用jquery插入DOM之后,使用该值。

jsFiddle中的解决方案测试是here

1 个答案:

答案 0 :(得分:0)

这可能是因为反斜杠应该在这样的字符串中转义:

'_regex" value="/^[(]?\\d{3}[)]?\\s?-?\\s?\\d{3}\\s?-?\\s?\\d{4}$/"/>'