jQuery更改表单

时间:2016-08-12 10:05:06

标签: javascript php jquery html wordpress

首先,该网站是http://emiralmedia.com/site/tennishero,它仅用于在单独的域上启动网站之前测试网站。

嗨,我想改变来自CRM联系表单的响应错误,借助stackoverflow帮助我设法将其集成到wordpress中。该表单与javascript链接,以将wordpress网站表单发送的消息与另一个平台集成。 (客户关系管理)。 现在我有这个联系表格的代码:



<div class="main-content">
  <div class="form-mini-container">
    <form FormHash="29074-1vmo1w4eti26ekzhtj8e" action="https://r3.minicrm.ro/Api/Signup" method="post" class="form-mini">
      <div class='form-row'>
        <input name="Contact[1181][LastName]" id="Contact_LastName_1181" language="RO" type="text" placeholder="Name and surname" />
      </div>

      <div class='form-row'>
        <input name="Contact[1181][Phone]" id="Contact_Phone_1181" language="RO" type="text" placeholder="Phone" />
      </div>

      <div class='form-row'>

        <input name="Contact[1181][Email]" id="Contact_Email_1181" language="RO" type="text" placeholder="Email" />
      </div>





      <div id="Response_29074-1vmo1w4eti26ekzhtj8e" style="display: none;" class="Response raspuns"></div>
      <input id="Submit_29074-1vmo1w4eti26ekzhtj8e form-row form-last-row" type="Submit" value="LET´S GET IN TOUCH" class="button2">
    </form>
  </div>
</div>
&#13;
&#13;
&#13;

当我想发送带有联系表格的消息时,我忘记添加&#34;姓名&#34; ,&#34;电话&#34;或&#34;电子邮件&#34; ,它以其他语言向我发送ResponseError,例如:

&#13;
&#13;
<span class="ResponseError" style="transition: none; line-height: 0px; border-width: 0px; margin: 0px; padding: 0px; letter-spacing: 0px; font-weight: 400; font-size: 14px;">Name and surname este obligatoriu</span>
&#13;
&#13;
&#13;

我想用自定义的邮件更改邮件....而不是使用CRM中的默认邮件。尝试发送邮件时出现跨度。从我猜的JavaScript。 https://r3.minicrm.ro/api/minicrm.js?t=1470730609

我试图制作这个剧本,但这没有做任何事。

&#13;
&#13;
if (window.location.pathname == '/site/tennishero/') {
  jQuery('.Response span').each(function() {
    if (jQuery(this).text() == 'Name and surname este obligatoriu') jQuery(this).text('Name si required');
  });
}
if (window.location.pathname == '/site/tennishero/') {
  jQuery('.Response span').each(function() {
    if (jQuery(this).text() == 'Telefon este obligatoriu') jQuery(this).text('Phone is required');
  });
}
if (window.location.pathname == '/site/tennishero/') {
  jQuery('.Response span').each(function() {
    if (jQuery(this).text() == 'Email este obligatoriu') jQuery(this).text('Email is required');
  });
}
&#13;
&#13;
&#13;

有什么想法吗?感谢。

1 个答案:

答案 0 :(得分:1)

英文版(罗马尼亚语版本)

通常,如果要更改元素的text / html,则应使用innerHTML(js)或html()(jquery)。在您的情况下,当您运行该代码时,该元素不在页面上(它不存在),它会在一段时间后出现,具体取决于用户,因此您的脚本不会更改任何内容。您的CRM脚本似乎是从外部源加载的,因此您似乎无法在提交按钮上使用onclick或编辑通过ajax接收的消息。因此,您可以使更改错误消息的脚本以一定的时间间隔运行(在这种情况下,10毫秒,立即更改文本)。

罗马尼亚语版本

由于您来自罗马尼亚,我们在那里设有专门团队,因此上面的文字有翻译版本:

在mod normal中,使用JQuery中的JavaScript变速器innerHTML进行修改,并使用va folositi de html()进行修改。在cazul de fata,elementul pe care vreti sa il modificati nu apare odata cu toata pagina,ci atunci cand utilizatorul apasa pe un buton si greseste ceva in formular,deci daca veti rula cand se incarca site-ul ceva gen $(".eroare").html("eroare"); ,elementul respectiva nu se va“schimba”,fiindca el inca nu exista。 Din pacate nu puteti nici simula ceva in genul onclick,pentru cazul in care vizitatorul apasa butonul de trimitere,nici nu puteti modifica direct codul CRM si mesajul primit prin ajax,fiindca,din cate am observat,scriptul pentru formular este unul extern,care comunica cu serverul(nu am studiat in amanunt)。 Asadar,o metoda pe care o puteti folosi este aceea de a programa codul care modifica textul sa se repete la un anumit interval de timp,iar daca gaseste acel element cu clasa ResponseError(din cate am vazut),sa ii schimbe continutul。 Acesta ar trebui sa ruleze foarte des,pentru ca utilizatorului sa nu ii apara mai intai textul original iar apoi sa i se schimbe。 Codul de mai jos ia toate elementele cu clasa ResponseError si le modifica continutul,o data la 10 milisecunde。一个fost testat pe pagina dvs web。

剧本

setInterval(function() {
    var response_errors = document.querySelectorAll('.ResponseError');
    Array.prototype.forEach.call(response_errors, function(elements, index) {
        document.getElementsByClassName("ResponseError")[index].innerHTML="AICI E TEXTUL ERORII";
    });
}, 10);

如果您有任何相关问题,请发表评论。