无法在弹出式文本框

时间:2015-12-28 10:27:08

标签: javascript jquery jquery-ui textbox

我有一个使用JQuery UI创建的弹出窗口。当您点击配置按钮时会打开:


当我点击随机IP按钮时,阵列中找到的IP列表中的IP会随机出现。 这些是它的代码:

/*Random IP generator*/
var textArray = [
    '2001:db8:a0b:12f0::1/48',
    '2001:DB8:C003:1::F00D/48',
    'FEDC:BA98:7654:3210::3/48',
    'FF01::43/48',
    '2FFB:1000:2000:0003::12f0/48',
    '2001:2AC:CAD:0000::/64'
];
var randomNumber = textArray[Math.floor(Math.random() * textArray.length)];

$("#random").click(function () {
    $('#value').val($('#value').val() + randomNumber);
});

这就是形式:

<div id="dialogbox" title="IPv6 Calculator">
    <form>
        <center><input type="text" placeholder="IPv6 Address and Netmask" id="value" size="25"/></center>

    </form>
    <p>
    <center>
        <button id="calculate" onclick="calculate()"
                style="background-color:#B4BA22; border-radius:3px; cursor:pointer;">Calculate
        </button>
        <button id="random" onclick="random()" style="border-radius:3px; cursor:pointer;">Random IP</button>
    </center>
    </p>
</div>

在文本框中获取IP后,通过手动输入或使用随机IP按钮,我需要使用此IP进行计算,但是当我单击“计算”按钮时,我无法从中获取IP文本框。这是计算函数:

$("#calculate").click(function () {
    $("#dialogbox").dialog("close");

    $("#result").dialog("open"); //another popup form opens

    ip = $("#value").val(); //ip declared globally
    $("#result").attr("title", "Result for IP" + ip) //tried to use the value obtained to change the attribute of a textbox but to no avail.
});

我仍然无法从文本框中获取值。有什么帮助吗?

修改
完整代码:Liveweave

2 个答案:

答案 0 :(得分:2)

经过30分钟的重新研究,我为你的TextBox输出提供了完美而简单的解决方案。

*** 您的JQuery代码中的小错误:

  1. 对于您的计算按钮,按钮ID和功能具有相同的值即。 [calculate] ,因为您的函数没有调用。
  2. 您提供 onclick ,但它应该是[onClick],“C”必须是大写
  3. 否则,一切都很好。

    ****更正*

    1. 将[onclick]更改为[ onClick ]。
    2. 只需将[“calculate()”]的第一个字母设为[“计算()”]。
    3.   

      ***整体解决方案:

      简单的JavaScript代码为您提供JQuery代码: 用这个JavaScript代码替换你的JQuery代码:)

      =============================================== ===================

          <div id="dialogbox" title="IPv6 Calculator">
          <form>
              <center><input type="text" placeholder="IPv6 Address and Netmask"      
               id="value" size="25"/> </center> 
          </form>
          <p>
            <center>
              <button id="calculate" onClick="Calculate()"
                      style="background-color:#B4BA22; border-radius:3px; 
                       cursor:pointer;">calculate
              </button>
              <button id="random" onclick="random()" style="border-radius:3px; 
               cursor:pointer;">Random IP</button>
            </center>
          </p>
      </div>
      
      
      <script>
       function Calculate(){
      var calc=document.getElementById("value").value;
      alert(calc);
      }
      </script>
      

答案 1 :(得分:1)

从共享的代码中我已经观察到了一些观点。您正在调用js中不可用的click函数,并且还会编写jquery单击函数,这会导致单击函数发生冲突。

这是你的senario的复制品

Fiddle

帮助:)