codeigniter与smarty和道场

时间:2012-03-26 11:34:23

标签: codeigniter dojo smarty

我在我的一个应用程序中使用CI + smarty + dojo框架。我需要一些帮助。我使用这三个框架创建了应用程序。它很好。我只有一个错误。在我的.tpl文件中,代码如下。

<div id="dialogAddFactory" data-dojo-type="dijit.Dialog" data-dojo-props="title:'{$factory_lang_data[factory_lang_data].add_factory_info}'" onCancel="clearfactoryform();" style="display: none;">
<form dojoType="dijit.form.Form" id="frmadd">
    {literal}
        <script type="dojo/method"
        data-dojo-event="onSubmit" data-dojo-args="evt">
            if(this.validate()) {
                    insert_factory_dt();
                    return false; 
            } else {
                return false;
            }
        </script>
    {/literal}
<table>
    <tr>
        <td><label for="txtfactoryname">{$factory_lang_data[factory_lang_data].factory_name_label} </label></td>
        <td><input type="text" required="true" name="txtfactoryname"
            id="txtfactoryname" placeholder="{$factory_lang_data[factory_lang_data].enter_factory_name}"
            dojoType="dijit.form.ValidationTextBox"
            missingMessage="{$factory_lang_data[factory_lang_data].factory_name_is_empty}" /></td>
    </tr>
    <tr>
        <td><label for="txtaddress">{$factory_lang_data[factory_lang_data].factory_address_label} </label></td>
        <td><textarea id="txtaddress" name="txtaddress"
            data-dojo-type="dijit.form.SimpleTextarea" rows="4" cols="25"
            style="width: auto;"></textarea></td>
    </tr>
    <tr>
        <td><label for="txtcity">{$factory_lang_data[factory_lang_data].factory_city_label} </label></td>
        <td><input type="text" required="true" name="txtcity" id="txtcity"
            placeholder="{$factory_lang_data[factory_lang_data].enter_city_name}"
            dojoType="dijit.form.ValidationTextBox"
            missingMessage="{$factory_lang_data[factory_lang_data].city_name_is_empty}" /></td>
    </tr>
    <tr>
        <td><label for="txtstate">{$factory_lang_data[factory_lang_data].factory_state_label} </label></td>
        <td><input type="text" required="true" name="txtstate" id="txtstate"
            placeholder="{$factory_lang_data[factory_lang_data].enter_state_name}" dojoType="dijit.form.ValidationTextBox"
            missingMessage="{$factory_lang_data[factory_lang_data].state_name_is_empty}!" /></td>
    </tr>
    <tr>
        <td><label for="txtcountry">{$factory_lang_data[factory_lang_data].factory_country_label} </label></td>
        <td><input type="text" required="true" name="txtcountry"
            id="txtcountry" placeholder="{$factory_lang_data[factory_lang_data].enter_country_name}"
            dojoType="dijit.form.ValidationTextBox"
            missingMessage="{$factory_lang_data[factory_lang_data].country_name_is_empty}!" /></td>
    </tr>
    <tr>
        <td><label for="txtpincode">{$factory_lang_data[factory_lang_data].factory_pincode_label} </label></td>
        <td>

        <input type="text" required="true" name="txtpincode"
            id="txtpincode" placeholder="{$factory_lang_data[factory_lang_data].enter_pincode_here}"
            dojoType="dijit.form.ValidationTextBox"
            {literal}
            data-dojo-props="regExp:'\\d{6}', invalidMessage:'{$factory_lang_data[factory_lang_data].pincode_is_invalid}'"
            {/literal}
            missingMessage="{$factory_lang_data[factory_lang_data].pincode_is_empty}!" />

        </td>
    </tr>
    <tr>
        <td colspan="2" align="center">
        <div class="dijitDialogPaneActionBar">
        <button dojoType="dijit.form.Button" type="submit">{$factory_lang_data[factory_lang_data].save}</button>
        </div>
        </td>
    </tr>
</table>
</form>
</div>

现在是workin文件。但在pincode fild中,有来自语言文件的常规表达和无效消息。 它也会验证密码,但不会显示来自语言文件的无效消息。它只显示

{$factory_lang_data[factory_lang_data].pincode_is_invalid}

1 个答案:

答案 0 :(得分:2)

问题是您在{literal}标记内使用了智能变量。尝试用以下代码替换上面的代码:

{literal}
 data-dojo-props="regExp:'\\d{6}', 
 invalidMessage:'{/literal}{$factory_lang_data[factory_lang_data].pincode_is_invalid}{literal}'"
 {/literal}