我试图自动在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组件吗?
答案 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>