我在实现js功能时遇到了麻烦。我的技能有限...... 我无法访问字段ID,因为这些字段是小部件,并且没有列出ID,所以我不得不使用字段名称。
电子邮件地址字段有一个默认值,允许客户通过网络表单发送匿名电子邮件。问题是,我希望在没有更改此默认电子邮件地址时显示文本(这是因为没有办法回复电子邮件)
<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 />
答案 0 :(得分: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>
答案 1 :(得分: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>
答案 2 :(得分:-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>