如何获取用户在联系表 7 中输入的内容并在发送前进行更改?我有一个输入字段,当用户提交数据时,我必须验证它,如果有什么需要更改,我尝试了很多选项,但找不到我需要的。
比如用户写了一些东西,我需要将它与JS变量进行比较,并在发送时更改它。
对于最小的例子: 您需要 Wordpress、插件 ContactForm7,对于 JS,我使用 WoodySnippets。 创建包含两个字段和按钮的联系表单。
<label>Doesn't need[text* text-564 placeholder ""]</label>
<label>Need[text* text-276 id:myform "5"]<label>
<button onclick="coinsCheck()">
<label>[submit "Submit"]</label>
</button>
和:
<script>
myfor = document.getElementById("myform").value;
function coinsCheck(){
alert(myfor);
if(myfor !== '6'){
alert(myfor);
}
}
</script>
这里我输出变量,第一次只是为了知道值,第二次如果它不等于6。 但警报显示“null”两次(如果片段位于表单上方)或四次“[object HTMLInputElement]”(如果片段位于表单下方)。在控制台中我出现此错误:无法加载资源:HTTP重定向太多:http://1.gravatar.com/avatar/459d16a800ceb49fe2871a22c7041252?s=52&d=mm&r=g
您有多个问题:
value
的 form
,而你的 form
没有 value
,而是表单元素,它们有自己的价值input
元素,您对其 value
感兴趣,但是您的代码块中缺少该元素,因此我添加了这样一个输入value
并且从不刷新,所以,抛开你得到了错误的value
,你也在错误的地方得到了它,不是在form
提交期间,而是在之前任何东西form
从未有过 value
,所以它是 undefined
,这就是为什么您第一次看到 undefined
,并且由于 undefined
不是 '6'
,您将第二次看到它,因为嗯这是一个经过调整的代码,其中我有一个数字输入,我在
value
提交期间获得 form
并将其与 '6'
进行比较。我认为如果这个值不是 form
,您根本不想提交 '6'
。
let myinput = document.getElementById("myinput");
function coinsCheck(){
alert(myinput.value);
if(myinput.value !== '6'){
alert(myinput.value);
return false;
}
return true;
}
<form id="myform">
<input id="myinput" type="number" value="5">
<label>Doesn't need[text* text-564 placeholder ""]</label>
<label>Need[text* text-276 id:myform "5"]<label>
<button onclick="return coinsCheck()">
<label>[submit "Submit"]</label>
</button>
</form>
但是如果你想将其更改为6,那么你可以像这样更改代码:
let myinput = document.getElementById("myinput");
function coinsCheck(){
alert(myinput.value);
if(myinput.value !== '6'){
myinput.value = 6;
}
return true;
}
<form id="myform">
<input id="myinput" type="number" value="5">
<label>Doesn't need[text* text-564 placeholder ""]</label>
<label>Need[text* text-276 id:myform "5"]<label>
<button onclick="return coinsCheck()">
<label>[submit "Submit"]</label>
</button>
</form>