0

我在实现 js 函数时遇到了麻烦。我的技能有限......我无法访问字段 ID,因为这些字段是小部件并且没有列出任何 ID,所以我不得不使用字段名称。

电子邮件地址字段有一个默认值,允许客户通过 webbform 发送匿名电子邮件。问题是,我希望在未更改此默认电子邮件地址时显示文本(这是因为无法回复电子邮件)

<rn:widget path="input/FormInput" name="Contact.Emails.PRIMARY.Address" required="false" label_input="E-postadress" default_value="anonymous@gmail.com" />

由于上面的邮件默认为anonymous@gmail.com,我需要在事件发生时调用一个函数。我想我可以检查主题字段的更改并在电子邮件地址仍然等于anonymous@gmail.com 时显示一条消息

我认为下面的代码可以解决我的问题,但它似乎没有注册更改事件。关于我做错了什么有什么建议吗?

<rn:widget path="input/FormInput" name="Contact.Emails.PRIMARY.Address" required="false" label_input="E-postadress" default_value="anonymous@gmail.com" />

<p id="Message"></p>

<rn:widget path="input/FormInput" name="Incident.Subject" required="true" label_input="Subject" />

<script>
document.getElementsByTagName('Incident.Subject')[0].onchange = function() {

    var x = document.getElementsByName("Contact.Emails.PRIMARY.Address")[0].value;

        if (x == 'anonymous@gmail.com') {
            document.getElementById("Message").innerHTML = 'Some text...';
        }
}
</script>

编辑:今天早上我有一个好主意,我想让我们在呈现 html 时检查源代码,我发现那里有 ID :-) 所以我想这意味着现在有替代解决方案,使用 ID。

<input type="email" id="rn_TextInput_4_Contact.Emails.PRIMARY.Address" name="Contact.Emails.PRIMARY.Address" class="rn_Email" maxlength='80' value='anonymous@x.com' />

<input type="text" id="rn_TextInput_11_Incident.Subject" name="Incident.Subject" class="rn_Text" maxlength='240' required  />
4

3 回答 3

0

我在这里做了一个演示

https://jsfiddle.net/aquadk/etmsqzLq/15/

    <script>
document.querySelector('input[name="Incident.Subject"]').onchange = function() {
    var x = document.querySelector('input[name="Contact.Emails.PRIMARY.Address"]').value;
        if (x == 'anonymous@gmail.com') {
            document.getElementById("Message").innerHTML = 'Some text...';
        }
}
</script>
于 2017-09-18T13:35:38.320 回答
0

我设法做对了:-)(花了我几个小时,但完成它感觉很好)

我在下面为那些有类似挑战的人发布答案:-)

Email: <input name="Contact.Emails.PRIMARY.Address" type="text" value="info@company.com"><br>
<font color="red"><b><p id="Message"></p></b></font>
Subject: <input id="rn_TextInput_11_Incident.Subject" name="subject" type="text" value=""><br>
<br>


<script>
document.getElementById("rn_TextInput_11_Incident.Subject").onchange = function() {myFunction()};
</script>

<script>
function myFunction() {
    var x = document.getElementsByName("Contact.Emails.PRIMARY.Address")[0].value;
if (x == "info@company.com") {
    document.getElementById("Message").innerHTML = "Glöm inte att fylla i din e-postadress om du önskar svar från oss.";
}

}
</script>
于 2017-09-19T08:13:36.893 回答
-2

使用事件监听器。

<script>
var tag = document.getElementsByTagName('Incident.Subject')[0];
tag.on('change',function() {
    var x = document.getElementsByName("Contact.Emails.PRIMARY.Address")[0].value;

    if (x == 'anonymous@gmail.com') {
        document.getElementById("Message").innerHTML = 'Some text...';
    }
});
</script>
于 2017-09-18T13:33:04.737 回答