Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 以编程方式提交表单_Javascript_Reactjs_Typescript - Fatal编程技术网

Javascript 以编程方式提交表单

Javascript 以编程方式提交表单,javascript,reactjs,typescript,Javascript,Reactjs,Typescript,我正在尝试在react中的handleSubmit函数中提交我的for。我想在提交表单之前预取一些信息并添加到表单中,因此我需要在handle submit函数中处理它。我无法在完成需要执行的操作后触发提交。有人能帮我吗 我尝试了evt.currentTarget.submit(),但它告诉我们submit不是一个函数 import React, { useEffect } from 'react'; const CheckoutPayfastComponent: React.FC = ()

我正在尝试在react中的handleSubmit函数中提交我的for。我想在提交表单之前预取一些信息并添加到表单中,因此我需要在handle submit函数中处理它。我无法在完成需要执行的操作后触发提交。有人能帮我吗

我尝试了
evt.currentTarget.submit()
,但它告诉我们submit不是一个函数

import React, { useEffect } from 'react';

const CheckoutPayfastComponent: React.FC = () => {
useEffect(() => {
});

const handleSubmit = (evt: React.FormEvent<HTMLFormElement>) => {
    evt.preventDefault();        
    evt.currentTarget.action = "https://sandbox.payfast.co.za/eng/process";
    // trigger submit here
}

return (
    <div>
        <form onSubmit={handleSubmit} method="POST" id="checkout"> 
            <input type="hidden" name="cell_number" value="0823456789"></input>
            <input type="hidden" name="email_confirmation" value="1"></input>

            <input type="hidden" name="amount" value="550.00"></input>
            <input type="hidden" name="item_name" value="General Plan"></input>
            <input type="hidden" name="subscription_type" value="1"></input>
            <input type="hidden" name="billing_date" value="2020-07-04"></input>
            <input type="hidden" name="recurring_amount" value="550.00"></input>
            <input type="hidden" name="frequency" value="4"></input>
            <input type="hidden" name="cycles" value="0"></input>

            <input type="submit" name="submit" value="Submit" id="ss-submit" ></input>
        </form>

    </div>
    );
}

 export { CheckoutPayfastComponent };
import React,{useffect}来自“React”;
const CheckoutPayfastComponent:React.FC=()=>{
useffect(()=>{
});
const handleSubmit=(evt:React.FormEvent)=>{
evt.preventDefault();
evt.currentTarget.action=”https://sandbox.payfast.co.za/eng/process";
//在这里提交
}
返回(
);
}
导出{CheckoutPayfastComponent};

尝试使用
FormData
提交表单 从“React”导入React,{useffect}

const CheckoutPayfastComponent: React.FC = () => {

const [myForm, setMyFormData] = useState({})

const handleSubmit = (evt: React.FormEvent<HTMLFormElement>) => {
    evt.preventDefault();        
    evt.currentTarget.action = "https://sandbox.payfast.co.za/eng/process";
    // trigger submit here

    let formData = new FormData();
    Object.keys(myForm).forEach(formName=>{
       formData.append(formName, myForm[formName]);
    });

    fetch("api/to/submit/my/formdata", {
        body: formData,
        method: "post"
    });
}

const onInputChange = (evt)=>{
  setMyFormData({[evt.target.name]: evt.target.value})
}

return (
    <div>
        <form onSubmit={handleSubmit} method="POST" id="checkout"> 
            <input type="hidden" name="cell_number" value="0823456789" onChange={onInputChange}></input>
            <input type="hidden" name="email_confirmation" value="1" onChange={onInputChange}></input>

            <input type="hidden" name="amount" value="550.00" onChange={onInputChange}></input>
            <input type="hidden" name="item_name" value="General Plan" onChange={onInputChange}></input>
            <input type="hidden" name="subscription_type" value="1" onChange={onInputChange}></input>
            <input type="hidden" name="billing_date" value="2020-07-04" onChange={onInputChange}></input>
            <input type="hidden" name="recurring_amount" value="550.00" onChange={onInputChange}></input>
            <input type="hidden" name="frequency" value="4" onChange={onInputChange}></input>
            <input type="hidden" name="cycles" value="0" onChange={onInputChange}></input>

            <input type="submit" name="submit" value="Submit" id="ss-submit" onChange={onInputChange}></input>
        </form>

    </div>
    );
}

 export { CheckoutPayfastComponent };
const CheckoutPayfastComponent:React.FC=()=>{
const[myForm,setMyFormData]=useState({})
const handleSubmit=(evt:React.FormEvent)=>{
evt.preventDefault();
evt.currentTarget.action=”https://sandbox.payfast.co.za/eng/process";
//在这里提交
设formData=new formData();
Object.keys(myForm).forEach(formName=>{
append(formName,myForm[formName]);
});
获取(“api/to/submit/my/formdata”{
正文:formData,
方法:“员额”
});
}
const onInputChange=(evt)=>{
setMyFormData({[evt.target.name]:evt.target.value})
}
返回(
);
}
导出{CheckoutPayfastComponent};

尝试使用
FormData
提交表单 从“React”导入React,{useffect}

const CheckoutPayfastComponent: React.FC = () => {

const [myForm, setMyFormData] = useState({})

const handleSubmit = (evt: React.FormEvent<HTMLFormElement>) => {
    evt.preventDefault();        
    evt.currentTarget.action = "https://sandbox.payfast.co.za/eng/process";
    // trigger submit here

    let formData = new FormData();
    Object.keys(myForm).forEach(formName=>{
       formData.append(formName, myForm[formName]);
    });

    fetch("api/to/submit/my/formdata", {
        body: formData,
        method: "post"
    });
}

const onInputChange = (evt)=>{
  setMyFormData({[evt.target.name]: evt.target.value})
}

return (
    <div>
        <form onSubmit={handleSubmit} method="POST" id="checkout"> 
            <input type="hidden" name="cell_number" value="0823456789" onChange={onInputChange}></input>
            <input type="hidden" name="email_confirmation" value="1" onChange={onInputChange}></input>

            <input type="hidden" name="amount" value="550.00" onChange={onInputChange}></input>
            <input type="hidden" name="item_name" value="General Plan" onChange={onInputChange}></input>
            <input type="hidden" name="subscription_type" value="1" onChange={onInputChange}></input>
            <input type="hidden" name="billing_date" value="2020-07-04" onChange={onInputChange}></input>
            <input type="hidden" name="recurring_amount" value="550.00" onChange={onInputChange}></input>
            <input type="hidden" name="frequency" value="4" onChange={onInputChange}></input>
            <input type="hidden" name="cycles" value="0" onChange={onInputChange}></input>

            <input type="submit" name="submit" value="Submit" id="ss-submit" onChange={onInputChange}></input>
        </form>

    </div>
    );
}

 export { CheckoutPayfastComponent };
const CheckoutPayfastComponent:React.FC=()=>{
const[myForm,setMyFormData]=useState({})
const handleSubmit=(evt:React.FormEvent)=>{
evt.preventDefault();
evt.currentTarget.action=”https://sandbox.payfast.co.za/eng/process";
//在这里提交
设formData=new formData();
Object.keys(myForm).forEach(formName=>{
append(formName,myForm[formName]);
});
获取(“api/to/submit/my/formdata”{
正文:formData,
方法:“员额”
});
}
const onInputChange=(evt)=>{
setMyFormData({[evt.target.name]:evt.target.value})
}
返回(
);
}
导出{CheckoutPayfastComponent};

为什么不使用Formik处理表单?如果您需要提取数据,为什么不在useEffect中这样做呢?我还没有反应过来。我在useEffect中看到了这样做,trickyou是否可以使用以下文档作为参考:您是否想过使用Axios或fetch提交数据?我使用的是fetch。我一直在努力解决的问题是,我发送到的外部API要求调用以表单的形式完成。所以这里需要//表单元素之类的数据,我一直在想如何实现这一点。也许你可以帮助@cels为什么不用Formik来处理表单?如果您需要提取数据,为什么不在useEffect中这样做呢?我还没有反应过来。我在useEffect中看到了这样做,trickyou是否可以使用以下文档作为参考:您是否想过使用Axios或fetch提交数据?我使用的是fetch。我一直在努力解决的问题是,我发送到的外部API要求调用以表单的形式完成。所以这里需要//表单元素之类的数据,我一直在想如何实现这一点。也许你可以帮助@CelsI尝试一下并给出反馈我会尝试一下并给出反馈