输入输入后,如何从字符串中提取最后一个字符?

时间:2019-02-20 21:02:29

标签: javascript php laravel

我在laravel和php中有一个项目,并且在视图中有一个输入,其中我写了一个字符串 10 个字符,其他输入的最大值是 1 。当我在第一个输入中写一个数字时,另一个输入必须满足第一个输入的最后一个字符。

例如:

<form action="{{route('admin.store', $admin)}}" method="POST">

  <input type="text" maxlength="10" minlength="9" id="number">

  <input type="text" maxlength="1" id="last">

  <input type="submit" value="APPLY CHANGES" onclick="return FillTextBox()">
</form>

如果我写的是 2341325432 ,则第二个输入必须满足值 2 ,因为 2 是第一个输入的最后一个字符输入。

我尝试过此操作,但无法完全正常工作。

因为在我的控制器dd($ request-> last)中的laravel中返回空值。

<script type="text/javascript">
    function FillTextBox(){
        var string = document.getElementById('number').value;

        document.getElementById('last').value = string.charAt(string.length-1);
    }
</script>

为什么我的功能无法正常工作?我试图用按钮捕获事件,或者也许我可能会尝试在在第一个输入中输入值后捕获。

2 个答案:

答案 0 :(得分:1)

如果由于加载顺序而将JavaScript设置为执行on load或在DOM ready上执行,则您的代码将无法工作。如果将其交换为位于<head><body>的底部,它将按预期工作:

function FillTextBox() {
  var string = document.getElementById('number').value;
  document.getElementById('last').value = string.charAt(string.length - 1);
}
<form action="new_tab.php" target="_blank" method="POST">
  <input type="text" maxlength="10" minlength="9" id="number">
  <input type="text" readonly="read" maxlength="1" id="last">
  <input type="submit" value="APPLY CHANGES" onclick="return FillTextBox()">
</form>

为防止这种情况,您应该真正通过添加 unobtrusive JavaScript 来使用 event listeners ,而不要使用onclick property

document.getElementById('submit').addEventListener('click', function() {
  var string = document.getElementById('number').value;
  document.getElementById('last').value = string.charAt(string.length - 1);
});
<form action="new_tab.php" target="_blank" rel="noopener noreferrer" method="POST">
  <input type="text" maxlength="10" minlength="9" id="number">
  <input type="text" readonly="read" maxlength="1" id="last">
  <input id="submit" type="submit" value="APPLY CHANGES">
</form>

除此之外,在使用target=_"blank"时,您还需要向表单中添加rel="noopener noreferrer"以防止 "Target Blank" vulnerability 。我已将其添加到以上示例中。

答案 1 :(得分:1)

我已经在表单字段中添加了 name 属性,以便在php代码上获取它:

<form action="test.php" target="_blank" method="POST">

  <input type="text" maxlength="10" name="number" minlength="9" id="number">

  <input type="text" maxlength="1" name="last" id="last">

  <input type="submit" value="APPLY CHANGES" onclick="return FillTextBox()">
</form>