【问题标题】:submit input text to shuffle image array提交输入文本以随机播放图像数组
【发布时间】:2017-03-19 23:06:32
【问题描述】:

我无法让这个文本输入正确激活随机随机图像数组。它将激活它,但在初始点击时。我希望它要求用户输入然后提交文本进行验证。

<style>iframe {display:none !important;}
    <!--
p {color:#000000; font-size:14px; font-family: verdana,  serif}
.title {color:#000000; font-size:14px; font-family: verdana,  serif}
-->
iframe:first-child { display: none !important; } {

top: 0% !important;

right:0% !important; 

display:none !important;

}

</style>
<script language="javascript">



var imagesArray = [
'https://assets.entrepreneur.com/content/3x2/1300/20150827173347-test-google-adwords-campaign-search-engine-internet.jpeg',
'https://yt3.ggpht.com/-DvvzUuiYGos/AAAAAAAAAAI/AAAAAAAAAAA/YoUb-VzIovA/s900-c-k-no-mo-rj-c0xffffff/photo.jpg',
'https://www.google.com/logos/doodles/2015/tu-bav-2015-5651988540817408-hp2x.jpg',
'https://www.google.com/doodle4google/images/splashes/featured.png',
'http://www.onetechstop.net/wp-content/uploads/2016/01/google-logo.jpg',
];

var usedImages = {};
var usedImagesCount = 0;

function displayImage(){

    var num = Math.floor(Math.random() * (imagesArray.length));
    if ($('#textbox').val() === '') {
    e.preventDefault();
}
    if (!usedImages[num]){
        document.canvas.src = imagesArray[num];
        usedImages[num] = true;
        usedImagesCount++;
        if (usedImagesCount === imagesArray.length){
            usedImagesCount = 0;
            usedImages = {};
        }
    } else {
        displayImage();
    }
}




</script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
    $(".btn1").click(function(){
        $("p").fadeOut()
    });
});

    

</script>
<html>
<head>
<body>
<center>
<form name="imageForm">

   <tr align="center">
   <td><br><br><br><br><br><br><br><br><br><br>
      <img src="http://i.imgur.com/8bp6n2l.jpg" name="canvas" /><br><br>
    </td>
  </tr>
  <tr>
    <td>
<center>
        <input  type="text"  class="btn1" id = "textbox"  size="60" ><br><br>
      <input onclick="displayImage();" type="reset"  value="Submit" class="btn1" /><br/>

    </td>
  </tr>
  
  </table>
</form>
<p><b>Progress</b> or <b>React?</b></p>

</head>
</body>
</html>
<html>
<head>
<body>
<center>
<form name="imageForm">

   <tr align="center">
   <td><br><br><br><br><br><br><br><br><br><br>
      <img src="http://i.imgur.com/8bp6n2l.jpg" name="canvas" /><br><br>
    </td>
  </tr>
  <tr>
    <td>
<center>
        <input  onclick="displayImage();" type="text"  class="btn1" id = "textbox"  size="60" ><br><br>
      <br/>

    </td>
  </tr>

  </table>
</form>

</head>
</body>
</html>

【问题讨论】:

  • 你为什么否定我?我想我让这个尽可能简单/清晰:(
  • 可能与否定无关,但我认为如果你能对你的问题做一个 sn-p 会很好。单击第二列[&lt;&gt;] 中的最后一个按钮。另外,你看过confirm吗?
  • @A.Lau 太棒了,我想我可能已经做到了......让我知道我可以如何帮助你帮助我,哈哈!
  • 啊忽略确认,没看到你有输入文本,只看到提交按钮。而且我认为您不太了解 sn-ps 的工作原理,所以现在可能只使用 jsfiddle :) 而且我认为只需在 if ($('#textbox').val() === '') 中添加 return 就足够了(如果您只是想检查它是否是否为空。
  • @A.Lau 嗯,return 似乎没有做任何事情,但我在 jsfiddle 中的其余代码也没有......但即使在我的典型编辑器中,它也会呈现什么我已经完成了,不幸的是return 没有做任何事情jsfiddle.net/g0su9dpq/1/#&togetherjs=8OUz6DgCHd

标签: javascript arrays image text input


【解决方案1】:

在您提供的 sn-p 等中有一堆未闭合的标签。但是在 if 语句中添加 return 可以防止图像在没有输入的情况下发生变化。

jsfiddle:https://jsfiddle.net/tv6rL23x/3/

if ($('#textbox').val() === '') 
{
    return
}

【讨论】:

  • 谢谢你,你真的很 sooo 包容,但不幸的是,我仍然是我开始的地方,没有响应的输入表单只会刷新页面,并且不会激活我的图像数组脚本。我正在徘徊如何将任何text inputsubmission 链接到Image Array 的随机洗牌命令,submit button 现在做得很好,所以text 在@987654329 中的存在@ 字段是验证submissionimage array 脚本所必需的
  • 我不明白你的问题。空文本字段不会更改图像,而任何输入都将允许图像更改。你想要完成什么?因为据我所知,它正在做你所描述的事情。什么试图验证什么?
  • 主要问题是不断刷新input form。当使用外部 enter 键“自行”输入且没有 submit button, 时,无论文本输入如何,它都会刷新页面:(。理想情况下,用户应该 i> 能够在没有submit button 的情况下按回车键,并且如果输入了文本,则更改图像,不刷新页面。没有文本输入,它应该保持完全静态,就像提交的方式按钮现在,没有刷新。就像提交按钮一样,当有文本输入提交时, 按钮或其他,图像改变
  • 哇,你是最棒的!最后一件小事,表单可以在单独输入时重置为空白,就像在提交按钮的帮助下一样?
  • 您必须手动执行此操作。通过在函数底部使用$('#textbox').val('') 或获取您的表单并使用reset()
【解决方案2】:

如果您希望图像在输入时更改,只需添加一个 oninput 事件侦听器。但是,我建议您不要在这种情况下使用内联事件侦听器,因为您要侦听多个事件。

也许用您的displayImage() 代码添加事件监听器会更好。

...
<center>
        <input  onclick="displayImage()" oninput="displayImage()" type="text"  class="btn1" id = "textbox"  size="60" ><br><br>
      <br/>

    </td>
  </tr>

  </table>
</form>

</head>
</body>
</html>

【讨论】:

  • 这是朝着正确方向迈出的一步!我不想要多个事件,onlick 或 input,但仅在基本用户文本输入的 提交 时,通过单击 enter 或通过提交按钮,例如... onclick 与简单的“onclick”一起使用,尤其是当我使用脚本指定需要文本输入来验证其对“displayImage()”的提交时命令。但是,如果这妨碍了我,我会徘徊吗? if ($('#textbox').val() === '') { e.preventDefault(); }
猜你喜欢
  • 1970-01-01
  • 2022-07-10
  • 2013-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-10
  • 2020-10-11
相关资源
最近更新 更多