如何获取用户在联系表7中输入的内容并在发送前更改它?

问题描述 投票:0回答:1

如何获取用户在联系表 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

javascript wordpress contact-form-7
1个回答
0
投票

您有多个问题:

  • 你想要得到你的
    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>

© www.soinside.com 2019 - 2024. All rights reserved.