我将首先解释一下此系统中的功能是如何工作的。
创建公司后,将显示一个表格,列出我创建的所有公司。
在此表的“操作”列中,有一个操作按钮,一旦我点击它,我将登录到我选择的特定公司,作为登录该公司的用户。
在内部,更像是相同的布局,我可以创建一个名为"运营商"的子公司。
所以有一个"创建运营商"按钮,一旦点击,我将被重定向到上面相同的表单布局(除了"公司名称"标签更改为"运营商名称")。
好吧,我正在使用 Yii2 php framework ,基本上,每个输入字段都是db表中的一个属性,在我的模型中,有一个名为{{1的函数其中每个属性都分配给特定标签。
对于示例,第一个输入字段的db表属性名称为public function attributeLabels()
,因此在此函数中,它被指定为company_name
,此标签为传递给这种形式的视图。因此,只要有错误消息,就会使用此标签。
无论我是创建公司还是运营商,错误消息始终"公司名称不应为空白"。我需要完成的是当我创建一个操作符时,错误信息应为"操作员名称不应为空白。"
我希望你能解决我的问题。所以我调整了一些 javascript / jQuery ,但我仍然遇到问题。
company_name => "Company Name"
我当前代码中的问题是:
当我将操作员名称输入字段留空时,然后单击输入字段外的空白区域,错误消息仍然是"公司名称不应为空白。"
但是当我点击返回输入字段时,错误消息更改为"操作员名称不应为空白。"
真正发生的是,当我点击运营商名称输入字段,然后单点击外部或任何其他输入字段时,错误消息仍然是"公司名称应该不要空白。",
但是当我执行第二次点击时,错误消息会发生变化。
点击返回到运营商名称输入字段时出现问题,因为它一直回到"公司名称不应为空白"单击时出现错误消息。
我希望你能解决我的问题。
编辑: Yii2生成的html看起来像这样:
// For changing Operator Name error message
var operatorNameLabel = $('.field-company-company_name label').attr('for','company-company_name').text();
var companyNameErrorDiv = $(".field-company-company_name p");
var operatorNameMsg = 'Operator Name should not be blank.';
$('#submit-button').click(function() {
// Change Operator Name error message
if (operatorNameLabel == "Operator Name") {
companyNameErrorDiv.html("<p class='help-block help-block-error'>Operator Name should not be blank</p>");
//companyNameErrorDiv.text(operatorNameMsg);
}
});
$('#content-offset').click(function () {
if (operatorNameLabel == "Operator Name") {
companyNameErrorDiv.html("<p class='help-block help-block-error'>Operator Name should not be blank</p>");
//companyNameErrorDiv.text(operatorNameMsg);
}
});
答案 0 :(得分:1)
尝试将required
属性添加到input
元素,data-*
元素label
元素;当css
无效时,:invalid
:after
,content
伪元素,label
属性input
显示消息。
input:invalid + label:after {
content: " " attr(data-name) " should not be blank";
color: red;
}
<input type="text" name="company_name" required /><label data-name="Company Name"></label><br>
<input type="text" name="login_name" required /><label data-name="Login Name"></label><br>
<input type="email" name="email" required /><label data-name="Email"></label><br>
<input type="password" name="password" required /><label data-name="Password"></label><br>
<input type="password" name="password_confirm" required /><label data-name="Password Confirm"></label>