无法获取在弹出文本框中输入的值

Can't get value entered in popup textbox

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


当我单击随机 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

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

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

  1. 对于您的计算按钮,按钮 ID 和功能具有相同的值 即。 [计算] 因为你的函数没有调用。
  2. 你提供了onclick但应该是[onClick],"C"必须大写.

否则,一切都很好。

****更正*

  1. 将 [onclick] 更改为 [onClick]。
  2. 只需将 ["calculate()"] 的第一个字母设为 ["Calculate()"].

*** Overall solution:


简单的 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>

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

这是你的 senario 的副本

Fiddle

求助:)