更改函数的document.getElementsByTagName

时间:2017-09-18 13:25:50

标签: javascript function onchange getelementsbyname

我在实现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  />

3 个答案:

答案 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>