Javascript 如何在需要时仅提交一个隐藏/显示字段数据-Laravel

Javascript 如何在需要时仅提交一个隐藏/显示字段数据-Laravel,javascript,jquery,html,jquery-selectors,show-hide,Javascript,Jquery,Html,Jquery Selectors,Show Hide,表单包含多个字段。一个字段是“是/否”下拉列表。选择“是”后,将显示另一个下拉列表。如果未选择,则会显示文本输入字段。 根据是/否下拉列表,其中一个字段的数据应提交到数据库 但是,这两个字段的数据都会发送到数据库。但是数据库需要一个字符串,现在它得到了一个数组。可以提交数据。 应该采取什么措施来防止这种情况发生,因此只有来自显示字段的数据才能通过控制器,而不包括来自当时隐藏字段的数据 注:应填写1个字段(下拉输入),必填 JQuery HTML 对 不 选择1 选择2 选择3 新的 在我的控制

表单包含多个字段。一个字段是“是/否”下拉列表。选择“是”后,将显示另一个下拉列表。如果未选择,则会显示文本输入字段。 根据是/否下拉列表,其中一个字段的数据应提交到数据库

但是,这两个字段的数据都会发送到数据库。但是数据库需要一个字符串,现在它得到了一个数组。可以提交数据。 应该采取什么措施来防止这种情况发生,因此只有来自显示字段的数据才能通过控制器,而不包括来自当时隐藏字段的数据

注:应填写1个字段(下拉输入),必填

JQuery HTML

对
不
选择1
选择2
选择3
新的

在我的控制器中,我已按要求对设备进行了验证。现在,我删除这个。通过修改javascript代码,错误消失了

$this->validate($request, [
            'institute'             => 'min:2', 
            ...
]); 

$project = new Project();
...
$project->type = request('type');
...
$project->save();
添加禁用字段的Javascript
因此,禁用未显示的字段。禁用的字段不会被发回。谢谢,我将试用它。谢谢。事实上,当一个字段被禁用时,数据不会被提交。
<div class="row">
    <div class="col-6"> 
          <select name="agree" class="form-control" onchange="hideShow();" id="yesno" required>
<option></option>
              <option id="yes">Yes</option>
              <option id="no">No</option>
          </select>
    </div> 
    <div class="col-6">
           <select name="type" class="form-control" id="ifYes">
                    <option>Option 1</option>
                    <option>Option 2</option>
                    <option>Option 3</option>
            </select>
            <input type="text" id="ifNo" class="form-control input-text" name="type">
     </div>
</div> 
<div class="row">
    <button type="submit" class="btn btn-primary btn-block" style="margin: 10px;">New</button>
</div>
$this->validate($request, [
            'institute'             => 'min:2', 
            ...
]); 

$project = new Project();
...
$project->type = request('type');
...
$project->save();
    function hideShow() {

        var x = document.getElementById('YesNo');
        var r = x.options[x.selectedIndex].value;
        var y = document.getElementById("ifyes");
        var n = document.getElementById("ifno");
        if ( r == "Yes"){
            y.style.display = "block";
            n.style.display = "none";
            y.disabled = false;
            n.disabled = true;
        y.required = true;
        n.required = false;
        }
        else if ( r == "No") {
            y.disabled = true;
            n.disabled = false;
            y.style.display = "none";
            n.style.display = "block";
        y.required = false;
        n.required = true;
        } else{
            y.disabled = true;
            n.disabled = true;
            y.style.display = "none";
            n.style.display = "none";
        y.required = false;
        n.required = true;
        }
    }