如何填充文本区域,以便在使用jQuery设置值后以表格形式提交文本区域

时间:2019-03-27 16:25:45

标签: javascript jquery reactjs

我试图自动在mobile.de(对象到广告链接)上填写广告报告的表单。用jQuery填充字段(描述的文本区域,电子邮件和电话号码的输入)并提交表单无效,因为在提交时重置了这些字段。 用jQuery填充它们可以工作(您可以看到更改),但是当用户使用鼠标手动将字段聚焦时,该字段将重置。

我以为某些事件使字段混乱,因此我尝试阻止它们,但后来我意识到甚至jQuery触发器都无法在字段上工作(例如$().focus()无效)。

我如何用jQuery填写表单,以便将值保留在字段中(无需处理发布请求)?

编辑:

$('#complain-link-center').click(function() {

    setTimeout(function() {
        // first radio click
        $('#reasonName_CONTRADICTORY_VEHICLE_DATA').click();

        // second radio click
        $('#sourceOfDistrust_AD').click();

        // this doesn't work
        $('.cBox-body .g-col-4 textarea').focus();

        // this works but you have to manually focus the field (stays populated on submit)
        $('input#email').focus(function() {
            $(this).val('email@example.com');
        });

    }, 100);
});

Edit2:我发现此页面是使用ReactJS开发的,因此这就是为什么它不适用于jQuery的原因。有可能用jQuery操作ReactJS组件吗?

1 个答案:

答案 0 :(得分:0)

尝试一下,希望对您有所帮助。谢谢

$('#complain-link-center').click(function() {

    setTimeout(function() {
        // first radio click
        $('#reasonName_CONTRADICTORY_VEHICLE_DATA').click();

        // second radio click
        $('#sourceOfDistrust_AD').click();

        // this doesn't work
        $('.cBox-body .g-col-4 textarea').focus();

        // this works but you have to manually focus the field (stays populated on submit)
        $('#email').focus(function() {
            $(this).val('email@example.com');
        });

    }, 2000);
});
<form>
<div class="form-group">
  <label>Radio 1</label>
  <input type="radio" class="form-control" id="reasonName_CONTRADICTORY_VEHICLE_DATA">
</div>
<div class="form-group">
  <label>Radio 2</label>
  <input type="radio" class="form-control" id="sourceOfDistrust_AD">
</div>
<div class="form-group cBox-body">
  <div class="g-col-4">
    <label>Message</label>
    <textarea id="message"></textarea>
  </div>
</div>
<div class="form-group">
  <label>Email</label>
  <input type="email" id="email" />
</div>
</form>

<button id="complain-link-center" class="btn">Complain</button>

    <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>