0

正在开发一个使用 PHP 和 jQuery 创建表单的前端实用程序;我可以添加几个特定字段,稍后将在表单上使用这些字段,哪些参数存储在图形界面的动态插入隐藏字段中。到目前为止一切正常,但我偶然发现了将字段添加到显示的代码的问题(后来被解析以生成最终的表单数据);在包含参数的注入 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 中插入时剥离了反​​斜杠;我该如何解决这个问题?

一个 工作示例在 jsFiddle 上。

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

jsFiddle 中的解决方案测试在这里

4

1 回答 1

0

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

'_regex" value="/^[(]?\\d{3}[)]?\\s?-?\\s?\\d{3}\\s?-?\\s?\\d{4}$/"/>'
于 2013-04-18T20:26:48.463 回答