JS&;PHP-如果其他字段已填充,则更改下拉值


JS & PHP - Change dropdown value if other fields are filled

我有一个医疗健康计划的PHP申请表,用户可以在其中填写自己的详细信息,并从各种控件中选择一些选项,其中之一是计划类型(家庭计划的私有)。有时,尽管用户填写了他的兄弟姐妹/配偶的详细信息,但他们忘记了选择"家庭"选项,并将下拉框保留为默认值,即"私人"计划。

如果用户填写了其兄弟姐妹的详细信息,我如何确保"计划"下拉列表将更改为正确的选项?我知道用js可以很容易地做到这一点,但我不确定我应该在什么事件上调用它,onFocusonClick不起作用,因为用户可能只需点击Sibling Name字段,但不输入值,填写一些内容,但稍后将其清除等。

我认为,一个计算4个可用兄弟字段长度的脚本,如果其中一个字段不为空,则将"plan"选择值从"private"更改为"family"。

任何想法都很好,谢谢。

您自己已经给出了部分答案:您需要一个函数来检查字段是否为空(或其他随机条件)。让我们调用函数checkCondition()

接下来,您将需要一个验证函数来调用它并在适当的情况下更改字段,您也可以将这两个函数组合在一起,但如果将它们分开,代码通常看起来更干净。例如ensureValidFieldPlan()

然后,您可以挂接该函数以在适当的时间运行。最简单的方法是在表单onChange中。更好的方法是将其挂接到适当的表单字段,但为了简单起见,让我们将其挂接到表单

你的总代码看起来像这样:

函数checkCondition(){return form.field1.value.length!=0;}函数ensureValidFieldPlan(){if(form.plan.value!='family'&&checkCondition()){form.plan.value='family'}}form.onchange=函数(){form.onchange();ensureValidFieldPlan();};

请注意,这并不能保证浏览器客户端会传输有效的表单(例如,它可能被伪造),您还应该始终执行服务器端验证。

取决于您想要如何处理它,服务器端?事实上,检测

strlen($_POST['siblingname']) > 0

然后在处理其他内容之前,从php代码中自动将您的计划设置为family。

如果你想在客户端进行操作。我建议使用流行的JQuery库,截取sibbligname字段上的值更改事件。然后,在事件处理程序中,检查sibbling name字段值的长度,如果有,只需将计划设置为family。

祝好运