【问题标题】:How can I disable html form input boxes depending on the value in a drop down box when the form is submitted提交表单时如何根据下拉框中的值禁用html表单输入框
【发布时间】:2012-08-17 02:09:12
【问题描述】:

我有一个包含多个输入字段、客户姓名和地址的 html 表单。当用户提交表单时,这些字段中的值将被发送到由 2 个表组成的数据库中。

我还有一个带有“是”和“否”选项的下拉框。当表单以“否”所选择的时,我需要将值作为正常发送到数据库,而不是清除新条目的输入字段,而不是我需要名称和姓氏到灰色/变为读/变为读并保持用户在其中输入的值。而地址字段为新条目重置。

然后,用户可以在地址字段中输入新值并再次按提交,这些值将与他们先前输入的姓名/姓氏的客户 ID 添加到我的数据库的地址表中。

这将重复,直到他们按下表单上的不同按钮,然后发送最终地址并重置整个表单以输入新的客户。

到目前为止,我已经设置好了,因此用户可以输入客户姓名和地址并按提交,然后它将被发送到数据库,并且表单将重置为另一个客户条目。

这是我的表单,有 4 个输入字段,

<form name="add" method="post" action="newCustomer.php">
<div id="leftcol">
<label><span>Name</span><br /> <input type="text" name="addFname" /></label>
<label><span>Surname</span> <input type="text" name="addLname" /> </label>
<label><span>Single Site?</span><Select name="field" onchange="showHide(this.value)

</label>
<div id="rightcol">
<label><span>Address line 1</span><input type="text" name="addSiteLine1" /></label>
<label><span>Address line 2</span><input type="text" name="addSiteLine2" /></label>

到目前为止,我已尝试将其添加到我的 php 代码的底部

if($dropdown== "no"){
     disable_text(true);

     }

disable text 是一个禁用文本的 javascript 函数,但这并没有做任何事情。

我也尝试在表单提交时调用这个函数,但是这阻止了我的 $_POST 方法获取值。当我使用只读而不是禁用再次尝试设置时,似乎什么也没发生。

我基本上是想避免需要第二个表单/网页来添加客户地址,并尽量避免为多个地址添加多个输入框(因为有些可能有 100 多个地址)

编辑

$Dropdown 在 php 中定义为:

$dropdown = $_POST['field'];

形式为

<label><span>Single Site?</span><Select name="field" onchange="showHide(this.value);">
</label>
<Option value="yes">yes</option>
<Option value="no">no</option>

该函数被调用,当该函数禁用所有文本字段时,我可以看到它发生,它们会闪烁灰色,然后页面会刷新,我会收到错误消息说

    $fName = $_POST['addFname'];

无法定义。当我更改函数以使字段只读时似乎没有发生任何事情,它只会提交数据并清除表单以准备新输入。

【问题讨论】:

  • 此时我们所知道的是“这没有做任何事情”。我们需要一些基本的调试,例如$dropdown 是如何定义的,你是否验证过 disable_text() 是否被调用等等。

标签: php javascript html ajax


【解决方案1】:

我可能不明白这个问题,如果我错了,请纠正我。你不能用javascript禁用字段并将字段值保存在会话变量中以带回表单吗?

document.getElementById('fieldToDisable').style.disabled= 'true';

制作一个会话变量标志,如果在页面加载时设置了该标志,则重新填写表单并禁用字段。

【讨论】:

  • 这会放在 php 代码中吗?如果是这样,我似乎找不到使用 php 禁用 html 表单的方法。
猜你喜欢
  • 2020-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-22
  • 2013-05-03
  • 1970-01-01
  • 2016-03-31
相关资源
最近更新 更多