簡體   English   中英

使用JavaScript在下拉菜單中填充表單字段

[英]Populating form fields on change of drop down using javascript

我試圖根據下拉框中選擇的值填充字段中的數據。 我已經將下拉選項select傳遞給javascript函數,但是在更新表單字段時遇到問題。 請檢查我的代碼是否存在我所犯的錯誤。

這是我的html代碼:

 <div class="form-ui">
      <span class="form-elements reqField">
          <select class="dropdown" onchange="populateData(this.options[this.selectedIndex].value,1)">
              <option value="1">Please Select</option>
              <option value="2">Mrs.Jane Smith</option>
              <option value="3">Mr.Junior Smith</option>
          </select>
      </span>

      <span class="form-elements reqField">
           <select id="itle1" class="dropdown">
              <option value="1">Mr.</option>
              <option value="2">Ms.</option>
              <option value="3">Mrs.</option>
           </select>
     </span>

    <span class="form-elements">
          <input id="FirstName1" type="text" class="text" value="" />
    </span>

    <span class="form-elements reqField">
          <input id="LastName1" type="text" class="text" value="" />
    </span>
   </div>

和javascript代碼:

 function populateData(value,person){
    if(value==2){
        $('#Title'+person).value=3;
        $('#FirstName'+person).value="Jane";
        $('#LastName'+person).value="Smith";
    }
   if(value==3){

   }

 }

快速的答案是,我認為您需要使用val()而不是value-不太記得它與select一起工作的方式

http://api.jquery.com/val/

jQuery使用val()獲取和設置值。

所以你的js函數應該是

$('#FirstName'+person).val("Jane");
$('#LastName'+person).val("Smith");

並不是

$('#FirstName'+person).value="Jane";
$('#LastName'+person).value="Smith";

<select class="dropdown" onchange="populateData(this.options[this.selectedIndex].value,1)">

應該

<select class="dropdown" onchange="populateData(this.value,1)">

這里HTML ID錯誤<select id="itle1" class="dropdown">Title1itle1

我也認為javascript應該看起來像這樣

function populateData(value,person){
    if(value==2){
        $('#Title'+person+' option[value="3"]').attr('selected','selected');
        $('#FirstName'+person).val("Jane");
        $('#LastName'+person).val("Smith");
    }
    if(value==3){

    }
}

您可以使用FORM代替DIV,並使用屬性name代替id
他們是很久以前設計用來管理表格的。

您可以使用jQuery,但是所有內容都已經內置在純Javascript中以處理表單。

<form class="form-ui">
  <span class="form-elements reqField">
      <select class="dropdown" onchange="populateData(this)">
          <option value="1">Please Select</option>
          <option value="2">Mrs.Jane Smith</option>
          <option value="3">Mr.Junior Smith</option>
      </select>
  </span>

  <span class="form-elements reqField">
       <select name="title" class="dropdown">
          <option value="1">Mr.</option>
          <option value="2">Ms.</option>
          <option value="3">Mrs.</option>
       </select>
 </span>

<span class="form-elements">
      <input name="FirstName" type="text" class="text" value="" />
</span>

<span class="form-elements reqField">
      <input name="LastName" type="text" class="text" value="" />
</span>
</form>
<script>
    function populateData(sel){
        var form = sel.form,
            value = sel.options[sel.selectedIndex].value;
        switch(value){
            case '3':
                form.FirstName.value = 'Junior';
                form.LastName.value = 'Smith';
                form.title.value = '1';
            break;
            case '2':
            break;
            default:
        }
    }
</script>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM