将几个文本字段的值传递给第三个(生成用户名)HTML,JS

Passing the value from a few text fields into a third (generating a username) HTML, JS

因此尝试将值从两个文本字段传递到第三个文本字段,我知道它应该是正确的,但它不起作用。你知道问题出在哪里吗?谢谢

<div class="form-group">
  <label for="ime">Ime:</label>
  <input type="text" class="form-control" id="ime" name="ime">
</div>
<div class="form-group">
  <label for="prezime">Prezime:</label>
  <input type="text" class="form-control" id="prezime" name="prezime">
</div>


<div class="form-group">
  <label for="username">Username:</label>
  <input type="text" class="form-control" id="username" name="username" onclick="kreiraj_username()">
</div>

<script>
  function kreiraj_username() {
    var ime = document.getElementById("ime").value.toLowerCase();
    var prezime = document.getElementById("prezime").value.toLowerCase();
    //   var id_clan = document.getElementById("id_clan").value;
    var username = document.getElementById("username").value.toLowerCase();
    username = ime + prezime;

  }
</script>

您需要分配给 username 元素的 ,因为原始值在 Javascript 中不是通过引用传递的。如果您将变量分配给从对象中获取的基元,为了在更改变量后更新对象,您需要再次显式分配对象的 属性。

但在这种情况下,由于原始username值没有被使用,直接分配给字段的value

function kreiraj_username() {
  var ime = document.getElementById("ime").value.toLowerCase();
  var prezime = document.getElementById("prezime").value.toLowerCase();
  document.getElementById("username").value = ime + prezime;
}
<div class="form-group">
  <label for="ime">Ime:</label>
  <input type="text" class="form-control" id="ime" name="ime">
</div>
<div class="form-group">
  <label for="prezime">Prezime:</label>
  <input type="text" class="form-control" id="prezime" name="prezime">
</div>


<div class="form-group">
  <label for="username">Username:</label>
  <input type="text" class="form-control" id="username" name="username" onclick="kreiraj_username()">
</div>