Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从另一个输入值自动填充输入_Javascript_Php_Jquery_Arrays_Input - Fatal编程技术网

Javascript 从另一个输入值自动填充输入

Javascript 从另一个输入值自动填充输入,javascript,php,jquery,arrays,input,Javascript,Php,Jquery,Arrays,Input,我有一个问题: <table> <?php $data['kriteria'] = array('IPK', 'SEMESTER', 'PENGHASILAN', 'BEASISWA LAIN'); $kriteria = array(); foreach ($data['kriteria'] as $key => $val) { $kriteria[$key] = $val['nama'];

我有一个问题:

<table>
    <?php
        $data['kriteria'] = array('IPK', 'SEMESTER', 'PENGHASILAN', 'BEASISWA LAIN');
        $kriteria = array();
        foreach ($data['kriteria'] as $key => $val) {
            $kriteria[$key] = $val['nama'];
        }
    ?>
    <thead>
        <tr>
            <th>Kriteria</th>
            <?php
            foreach ($kriteria as $val) {
                echo '<th>' . $val . '</th>';
            }
            ?>
        </tr>
    </thead>
    <tbody>
        <?php $n = count($kriteria); ?>
        <?php for ($i = 0; $i < $n; $i++): ?>
            <tr>
                <th><?= $kriteria[$i] ?></th>
                <?php for ($j = 0; $j < $n; $j++): ?>
                    <td><input type="text"  class="form-control" id="<?= $kriteria[$j] . $kriteria[$i] ?>" name="<?= $j. $i ?>" value=""></td>
                <?php endfor; ?>
            </tr>
        <?php endfor; ?>
    </tbody>
</table>

克里特里亚
谢谢大家的回答,我现在可以解决我的问题了
这就是代码


克里特里亚

克里特里亚

如果您想进行数学运算,并且只想在第一次输入中输入数字,那么JQuery是正确的,但是如果您尝试对文本执行相同的操作,那么它将返回NaN,因为它假设您想返回“1除以值”,所以您可以这样做,然后右击第二个函数进行数学运算:

$(document).ready(function () {
    $("#SI").keyup(function () {
        var value = $("#SI").val();
        $("#IS").val(value)
    });
});

检查一个正在工作的JSFIDLE。

也许您正在创建动态控件,以便索引未匹配,试图添加索引或将autocomplete=
设置为off
什么是
$(“#SI”)
$(“IS”)
?ID必须是唯一的,至少它们在for循环中,但它们不在代码中$val
将是字符串,而不是数组,因此code>应发出有关未定义索引“nama”的警告。您将
$data['kriteria']
定义为一个平面索引数组,而不是该代码上方3行的多维关联数组。“应更新问题,以包括所需的行为、特定问题或错误,以及重现问题所需的最短代码。”-当您询问javascript questionId是动态生成的,不会匹配时,可能会删除php象形文字,因此在jquery中按类名使用请进一步解释-是什么让您认为这应该是一个错误?@NicoHaase,如果您想做数学,只想在第一次输入中输入数字,这实际上不是一个错误,但是如果您尝试对文本执行相同的操作,那么它将返回NaN,因为它假设您希望返回“1除以值”。我可能应该在答案中指定它=)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<?php
$kriteria = array('IP', 'SE', 'PE', 'BE');

?>
<thead>
<tr>
    <th>Kriteria</th>
    <?php
    foreach ($kriteria as $val) {
        echo '<th>' . $val . '</th>';
    }
    ?>
</tr>
</thead>
<tbody>
<?php $n = count($kriteria); ?>
<?php for ($i = 0; $i < $n; $i++): ?>
    <tr>
        <th><?= $kriteria[$i] ?></th>
        <?php for ($j = 0; $j < $n; $j++): ?>
            <td><input type="text" class="form-control" index-j="<?= $j ?>"
                       index-i="<?= $i ?>"
                       id="<?= $kriteria[$j] . $kriteria[$i] ?>"
                       name="<?= $j . $i ?>" value=""></td>
        <?php endfor; ?>
    </tr>
<?php endfor; ?>
</tbody>
<script type="text/javascript">
$(document).ready(function () {
    var size = <?=$n ?>;

    for (let i = 0; i < size; i++) {
        for (let j = 0; j <= i; j++) {
            if (i == j) {
                $(`[index-i=${i}][index-j=${j}]`).val(1);
            } else {
                $(`[index-i=${j}][index-j=${i}]`).keyup(function () {
                    var value = $(this).val();
                    $(`[index-i=${i}][index-j=${j}]`).val(1 / value);
                });
            }
        }
    }
});
$(document).ready(function () {
    $("#SI").keyup(function () {
        var value = $("#SI").val();
        $("#IS").val(value)
    });
});