【问题标题】:How can I send to Javascript form elements values. Constantly sending one value如何发送到 Javascript 表单元素值。不断发送一个值
【发布时间】:2019-06-26 18:29:46
【问题描述】:

<script>
function tikla()
{
	//var radio=document.getElementById('radio').value;
	var d2=document.getElementById('buton').value;
	alert(d2);
}
</script>
<?php 

	for($i=1;$i<5;$i++)
	{?>
    	<form>
        <?php echo $i; ?>
            <input type="text" name="txt" value="<?php echo $i; ?>" disabled="disabled" /> 
          	<input type="button" id="buton" value="<?php echo $i; ?>" onclick="tikla(this.value)" />
         </form>
	<?php }?>

在 PHP 中,我想将按钮或文本值发送到 Javascript,但我只能发送一个值。我看不到其他循环值。

【问题讨论】:

  • 因为 id 必须是唯一的。使用一个类和this(或你传递给tikla的参数)
  • 每个文本字段和按钮的新表单? ID 属性必须是唯一的,如果元素是 disabled,它将不会出现在 POSTed 值中。

标签: javascript php loops for-loop


【解决方案1】:

真的有多种形式的意图吗?当然,没有理由不这样做,但一般来说,您可以使用单一表格来完成您需要的事情。

通过使用nodelist,您可以遍历并将事件侦听器分别分配给HTML - 如今,内联事件处理程序被认为是老派。在此示例中,事件处理程序被分配给每个按钮,并简单地提醒分配给按钮的数值(如您的示例)以及文本字段的值和类型,以显示您在需要时如何访问它。

快速演示

<!DOCTYPE html>
<html lang='en'>
    <head>
        <meta charset='utf-8' />
        <title>JS Func</title>
        <style>
            fieldset{border:none;margin:1rem auto}
        </style>
    </head>
    <body>
        <form>
        <?php
            for( $i=1; $i<5; $i++ ) {
                $rand = rand(1,99);
        ?>
                <fieldset>
                    <?php echo $i; ?>
                    <input type='text' name='txt[]' value='<?php echo $i * $rand; ?>' /> 
                    <input type='button' value='<?php echo $i; ?>' />
                </fieldset>
        <?php
            }
        ?>
        </form>
        <script>
            Array.prototype.slice.call( document.querySelectorAll( 'form > fieldset > input[type="button"]' ) ).forEach( function( bttn ){
                bttn.addEventListener('click', function(event){
                    alert( this.value  +' '+this.previousElementSibling.value + ' ' +this.previousElementSibling.tagName )
                }, false );
            })
        </script>
    </body>
</html>

【讨论】:

  • 谢谢 RamRaider,我不知道 nodelist 这就是为什么我不明白你的代码,但它会学习
  • a nodelist 是使用 document.querySelectorAll('div') 等方法时返回的 DOM 元素集合 ~ 这将返回 div 元素的节点列表......
【解决方案2】:

在函数中传递值

  <script>
function tikla(val)
{
    //var d2=document.getElementById('buton').value;
    alert(val);
}
</script>
<?php 

    for($i=1;$i<5;$i++)
    {?>
        <form>
        <?php echo $i; ?>
            <input type="text" name="txt" value="<?php echo $i; ?>" disabled="disabled" /> 
            <input type="button" id="buton" value="<?php echo $i; ?>"  onclick="tikla(<?php echo $i; ?>)" />
         </form>
    <?php }?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-06
    • 1970-01-01
    • 2020-02-20
    相关资源
    最近更新 更多