简体   繁体   English

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

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

I am trying to populate data in my fields depending on the value selected in the drop down box. 我试图根据下拉框中选择的值填充字段中的数据。 I have passed the dropdown option select to the javascript function, but having problem in updating the form fields. 我已经将下拉选项select传递给javascript函数,但是在更新表单字段时遇到问题。 Please check my code for the error I've committed. 请检查我的代码是否存在我所犯的错误。

This is my html code: 这是我的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>

And the javascript code: 和javascript代码:

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

   }

 }

quick answer is that I think you need to use val() not value - can't quite remember how it works with select though 快速的答案是,我认为您需要使用val()而不是value-不太记得它与select一起工作的方式

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

jQuery uses val() to get and set values. jQuery使用val()获取和设置值。

So your js function should be 所以你的js函数应该是

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

and not 并不是

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

Also

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

should be 应该

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

HTML ID error here <select id="itle1" class="dropdown"> Should be Title1 not itle1 这里HTML ID错误<select id="itle1" class="dropdown">Title1itle1

Also I think the javascript should look like this 我也认为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){

    }
}

You could use a FORM instead of a DIV, and the attribute name , instead of id . 您可以使用FORM代替DIV,并使用属性name代替id
They were designed a long time ago to manage forms. 他们是很久以前设计用来管理表格的。

You can use jQuery for that, but everything is already built-in in pure Javascript to handle forms. 您可以使用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