从函数中传递的提交表单中获取字段值

时间:2019-05-02 10:20:58

标签: javascript html

我有以下代码来提交表单

<form class="sh-form"  onsubmit="validateCmntForm(this);">

,当我尝试使用以下代码从提交的表单中获取字段值时,它返回f.getElementById not a function错误

validateCmntForm(f){
 let nameField = f.getElementById('sh-cmnt-fullname');
 console.log(nameField)
}

我在这里做错了什么?有人可以帮我吗?

更新:使用此in函数传递表单的原因是,我在页面上有多种相同类型的表单,因此不能对此使用id,而必须从提交的表单中获取字段值

3 个答案:

答案 0 :(得分:2)

您可以直接引用Submit事件(target将是附加的子代的数组),或者您可以根据需要通过ID引用输入。我在下面展示了两个片段,以演示两者。

function validateCmntForm(event) {
  event.preventDefault();
  console.log(event.target[0].value);
  console.log(document.getElementById('sh-cmnt-fullname').value);
}
<form class="sh-form" onsubmit="validateCmntForm(event)">
  <input id="sh-cmnt-fullname" type="text" />
  <button type="submit">Submit</button>
</form>

答案 1 :(得分:1)

使用返回validatecmntform

function validateCmntForm(oForm){
console.log(oForm.elements["name"].value) // this is how you can get form data
return false;
}
<form class="sh-form"  onsubmit="return validateCmntForm(this);">
<input type="text" name="name" id="myname">

<input type="submit" value="submit">
</form>

答案 2 :(得分:1)

尝试

<form onsubmit='return validateCmntForm()' method='post' name='myForm'>
    <input type="text" name="eName">
</form>

脚本中

<script type="text/javascript">
     validateCmntForm = function(){
        var eName = document.forms['myForm']['eName'].value;
        console.log(eName)
     }
</script>