我有一个下拉菜单,用户必须在其中选择一个选项。如果该选项未在此处列出,则用户可以选中一个复选框,同时禁用下拉菜单并启用文本框。通过这种方式,用户可以编写菜单中未列出的选项。这很好用。但是,如果用户选中该框以键入另一个选项并按下提交,并且假设表单中的其他内容(验证)错误导致系统返回表单,如果用户已经选中该框,它应该现在显示为:下拉菜单已禁用,文本框已启用,其中包含用户键入的内容。我已经设法用 PHP 保留了这些信息,但问题是,即使复选框显示已选中,下拉菜单已启用而文本框未启用。
我怎样才能解决这个问题???
好吧,我已经得到了我希望这个脚本只使用 javascript 来做的事情。但是,我想知道如何使用 jQuery 实现这一点。有没有人知道的??
同时,这是我运行良好的代码:
<?php //checkbox2.php header('Content-Type: text/html; charset=UTF-8'); ?> <html> <head> <meta http-equiv="content-language" content="es"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="generator" content="PhpED Version 7.0 (Build 7043)"> <title>checkbox enable disable</title> <meta name="author" content="Pathros Ibarra">
<!-- Aqu? va la declaraci?n del script enable textbox when checkbox is checked--> <SCRIPT LANGUAGE="JavaScript">
function codename()
{
if(document.forma_registro.checkboxname.checked)
{
document.forma_registro.grado_otro.disabled=false;
document.forma_registro.grado.disabled=true;
}
else
{
document.forma_registro.grado_otro.disabled=true; //textname
document.forma_registro.grado.disabled=false; //box
}
}
//------------------------- en caso de que se haya escrito texto alternativo, entonces apl?quese la siguiente funci?n
function codename2()
{
if(document.forma_registro.checkboxname2.checked)
{
document.forma_registro.grado_otro2.disabled=false;
document.forma_registro.grado2.disabled=true;
}
else
{
document.forma_registro.grado_otro2.disabled=true;
document.forma_registro.grado2.disabled=false;
}
}
</SCRIPT> </head> <body> <?php if(empty($_POST)===false) {
if((isset($_POST['checkboxname2'])===true && $_POST['checkboxname2']=="ON" ))//|| isset($_POST['checkboxname'])===true && $_POST['checkboxname']=="ON")
{
//2da forma
echo '<p style="color: green; font: bold;">Ok in checkbox 2!</p>';
if(empty($_POST['grado'])===false)
{
echo '<p style="color: purple; font: bold;">Se recibió un dato desde el menú y es: "'.$_POST['grado'].'"</p>';
}
else if(empty($_POST['grado_otro'])===false)
{
echo '<p style="color: purple; font: bold;">Se recibió un dato desde el cuadro de texto alternativo y es: "'.
$_POST['grado_otro'].'"</p>';
}
else
{
echo '<p style="color: red; font: bold;">No data received in checkbox 2.</p>';
} ?> <p style="color: green; text-decoration: blink; font: bold;"></p> <h4 style="color: blue;">Forma de ejemplo con checked</h4> <form action="" name="forma_registro" method="post"> <select name="grado2" <?php if(isset($_POST['grado_otro2'])===false) echo 'disabled="disabled"'; ?>> <!-- disabled="disabled" --> <option value="">--Seleccione--</option> <option value="volvo" <?php if(isset($_POST['grado2'])===true && $_POST['grado2']=='volvo') echo 'selected="selected"'; ?>>Volvo</option> <option value="saab" <?php if(isset($_POST['grado2'])===true && $_POST['grado2']=='saab') echo 'selected="selected"'; ?>>Saab</option> <option value="mercedes" <?php if(isset($_POST['grado2'])===true && $_POST['grado2']=='mercedes') echo 'selected="selected"'; ?>>Mercedes</option> <option value="audi" <?php if(isset($_POST['grado2'])===true && $_POST['grado2']=='audi') echo 'selected="selected"'; ?>>Audi</option> </select> <!-- aquí abajo iba el 2 --> <input type="checkbox" name="checkboxname2" onclick="codename2()" <?php if(isset($_POST['grado_otro'])===true) echo 'value="ON" checked="checked"'; ?>> Seleccionar si otro: <input type="text" name="grado_otro" <?php if(isset($_POST['grado_otro'])===true) echo 'value="'.$_POST['grado_otro'].'"'; ?>><br> <input type="submit" value="enviar"> </form> <?php
}
else
{
echo '<p style="color: green; font: bold;">Ok in checkbox 1 uno!</p>';
if(empty($_POST['grado'])===false)
{
echo '<p style="color: green; font: bold;">Se recibió un dato desde el menú y es: "'.$_POST['grado'].'"</p>';
}
else if(empty($_POST['grado_otro'])===false)
{
echo '<p style="color: green; font: bold;">Se recibió un dato desde el cuadro de texto alternativo y es: "'.
$_POST['grado_otro'].'"</p>';
}
else
{
echo '<p style="color: orange; font: bold;">No data received in checkbox 1.</p>';
}
?> <p style="color: green; text-decoration: blink; font: bold;"></p> <h4 style="color: blue;">Forma de ejemplo sin checked</h4> <form action="" name="forma_registro" method="post"> <select name="grado" <?php if(isset($_POST['grado_otro'])===true) echo 'disabled="disabled"'; ?>> <option value="">--Seleccione--</option> <option value="volvo" <?php if(isset($_POST['grado'])===true && $_POST['grado']=='volvo') echo 'selected="selected"'; ?>>Volvo</option> <option value="saab" <?php if(isset($_POST['grado'])===true && $_POST['grado']=='saab') echo 'selected="selected"'; ?>>Saab</option> <option value="mercedes" <?php if(isset($_POST['grado'])===true && $_POST['grado']=='mercedes') echo 'selected="selected"'; ?>>Mercedes</option> <option value="audi" <?php if(isset($_POST['grado'])===true && $_POST['grado']=='audi') echo 'selected="selected"'; ?>>Audi</option> </select> <input type="checkbox" name="checkboxname" onclick="codename()" value="ON" <?php if(isset($_POST['grado_otro'])===true) echo 'checked="checked"'; ?>> Seleccionar si otro: <input type="text" name="grado_otro" <?php if(isset($_POST['grado_otro'])===false) echo 'disabled="disabled"'; ?> <?php if(isset($_POST['grado_otro'])===true) echo 'value="'.$_POST['grado_otro'].'"'; ?>><br> <input type="submit" value="enviar"> </form>
<!-- Si la forma del checkbox está en ON, entonces aplicará lo sig: if($_POST['checkboxname2']=="ON" || $_POST['checkboxname']=="ON") y con otra forma y el checkboxname2() --> <?php
}//fin del else }//fin del empty post else { ?> <h4 style="color: blue;">Forma de ejemplo sin checked (inicio)</h4> <form action="" name="forma_registro" method="post"> <select name="grado"> <option value="">--Seleccione--</option> <option value="volvo" <?php if(isset($_POST['grado'])===true && $_POST['grado']=='volvo') echo 'selected="selected"'; ?>>Volvo</option> <option value="saab" <?php if(isset($_POST['grado'])===true && $_POST['grado']=='saab') echo 'selected="selected"'; ?>>Saab</option> <option value="mercedes" <?php if(isset($_POST['grado'])===true && $_POST['grado']=='mercedes') echo 'selected="selected"'; ?>>Mercedes</option> <option value="audi" <?php if(isset($_POST['grado'])===true && $_POST['grado']=='audi') echo 'selected="selected"'; ?>>Audi</option> </select> <input type="checkbox" name="checkboxname" onclick="codename()" value="ON"> Seleccionar si otro: <input type="text" name="grado_otro" disabled="disabled" <?php if(isset($_POST['grado_otro'])===true) echo 'value="'.$_POST['grado_otro'].'"'; ?>><br> <input type="submit" value="enviar"> </form>
<?php } ?> </body> </html>