我在我的一个应用程序中使用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}
答案 0 :(得分:2)
问题是您在{literal}
标记内使用了智能变量。尝试用以下代码替换上面的代码:
{literal}
data-dojo-props="regExp:'\\d{6}',
invalidMessage:'{/literal}{$factory_lang_data[factory_lang_data].pincode_is_invalid}{literal}'"
{/literal}