0

我有一个非常奇怪的错误,我的注册表在部署时没有验证新的输入字段(性别、出生日期)。但是,完全相同的代码正在我当地的 SCA Mont Blanc 上进行验证。

我已经完成了完整的部署,即gulp deploy.

我已经覆盖了Account模块。我的 Account/Javascript/Account.Register.Model.js文件添加了以下验证:

//@property {Object} validation. Backbone.Validation attribute used for validating the form before submit.
validation: {
    firstname: { required: true, msg: _('First Name is required').translate() }
,   lastname: { required: true, msg: _('Last Name is required').translate() }
,   email: { required: true, pattern: 'email', msg: _('Valid Email is required').translate() }
,   company:  { required: SC.ENVIRONMENT.siteSettings.registration.companyfieldmandatory === 'T', msg: _('Company Name is required').translate() }
,   password:  { required: true, msg: _('Please enter a valid password').translate() }
,   password2: [
        { required: true, msg: _('Confirm password is required').translate() }
    ,   { equalTo: 'password', msg: _('New Password and Confirm Password do not match').translate() }
    ]
,   gender: { required: true, msg: _('Gender is required').translate() }
,   dobday: { required: true, msg: _('Date of birth is required').translate() }
,   dobmonth: { required: true, msg: _('Date of birth is required').translate() }
,   dobyear: { required: true, msg: _('Date of birth is required').translate() }
,   phone: { required: false, pattern: 'digits', msg: _('Phone or Mobile number is required').translate() }
}

我已将输入添加到LoginRegisterOverrides@1.0.0/Templates/login_register_register.tpl. 我不会显示所有这些,但这里是性别输入:

<div class="login-register-register-form-controls-group" data-validation="control-group">
    <label class="login-register-register-form-label" for="register-gender">
        {{translate 'Gender <small class="login-register-register-form-required">*</small>'}}
    </label>
    <div class="login-register-register-form-controls" data-validation="control">

        <select name="gender" id="register-gender" class="login-register-register-select" data-action="selectgender" data-toggle="select-gender">
            <option value="">
                {{translate '-- Select --'}}
            </option>
            <option value="1">
                Male
            </option>
            <option value="2">
                Female
            </option>
        </select>
    </div>
</div>

我已经确认我的模块ns.package.json文件覆盖了正确的文件。另外它在本地工作(gulp local)所以我知道它们设置正确。

为什么输入在部署时不验证但它们在本地验证的问题/问题可能是什么?

以下来自我当地的 SCA 网站(性别和出生日期输入正确验证)。 在此处输入图像描述

以下来自我部署的/在线 SCA 网站: 在此处输入图像描述

4

1 回答 1

0

经过数十个小时的尝试来解决这个问题,事实证明错误归结为我的JavaScript模块文件夹中的“s”。

ns.package.json我有:

{
    "gulp": {
        "javascript": [
            "JavaScript/*"
        ],
    },
    "overrides": {
        // Problem here Should be /JavaScript/ not /Javascript/
        "suitecommerce/LoginRegister@2.1.0/Javascript/LoginRegister.Register.View.js": "Javascript/LoginRegister.Register.View.js",
    }
}

哇,我在 Windows 上,所以文件路径在本地有效,但 NS 服务器必须是 Linux。如果是这样,为什么 SCA 开发人员不把所有文件夹都用下划线小写,看在上帝的份上!

于 2017-04-13T00:17:32.640 回答