Как создать «Динамическое поле со списком» вместо Select - Option Tag в HTML - PullRequest
0 голосов
/ 22 апреля 2019

В настоящее время я работаю над тем, как сделать тег SELECT-OPTION, который может добавлять новые значения, без добавления с помощью жесткого кодирования, и обнаружил, что мы на самом деле можем использовать «динамический COMBO BOX», используя свойства DHTML.

Я попробовал идею, используя эту ссылку ==> http://jkorpela.fi/forms/combo.html


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<TITLE>Combo box demo</TITLE>
<script type="text/javascript" language="JavaScript"><!--
function activate(field) {
  field.disabled=false;
  if(document.styleSheets)field.style.visibility  = 'visible';
  field.focus(); }
function last_choice(selection) {
  return selection.selectedIndex==selection.length - 1; }
function process_choice(selection,textfield) {
  if(last_choice(selection)) {
    activate(textfield); }
  else {
    textfield.disabled = true;    
    if(document.styleSheets)textfield.style.visibility  = 'hidden';
    textfield.value = ''; }}
function valid(menu,txt) {
  if(menu.selectedIndex == 0) {
    alert('You must make a selection from the menu');
    return false;} 
  if(txt.value == '') {
    if(last_choice(menu)) {
      alert('You need to type your choice into the text box');
      return false; }
    else {
      return true; }}
  else {
    if(!last_choice(menu)) {
      alert('Incompatible selection');
      return false; }
    else {
      return true; }}}
function check_choice() {
  if(!last_choice(document.demoform.menu)) {
    document.demoform.choicetext.blur();
    alert('Please check your menu selection first');
    document.demoform.menu.focus(); }}
//--></script>

<form action="add_file.php" name="demoform" onsubmit=
 "return valid(this.menu,this.choicetext)">
<select name="menu" onchange=
 "process_choice(this,document.demoform.choicetext)">
<option value="0" selected>(please select:)</option>
<option value="1">one</option>
<option value="2">two</option>
<option value="3">three</option>
<option value="other">other, please specify:</option>
</select>
<noscript>
<input type="text" name="choicetext">
</noscript>

<script type="text/javascript" language="JavaScript"><!--
disa = ' disabled';
if(last_choice(document.demoform.menu)) disa = '';
document.write('<input type="text" name="choicetext"'+disa+
' onfocus="check_choice()">');
if(disa && document.styleSheets)
   document.demoform.choicetext.style.visibility  = 'hidden';
//--></script>

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

Закончилось просто отображением значения = "прочее" вместо нового текста, который я набираю после нажатия на кнопку отправить и сохранить в базе данных. Любая возможная помощь приветствуется. Заранее спасибо!

...