【问题标题】:confirmation tab does not show up确认选项卡不显示
【发布时间】:2015-11-05 05:33:27
【问题描述】:

所以我创建了一个表单。提交该表单后,我创建了一个确认选项卡,以便用户可以确认他的输入。一旦用户确认输入,表单将被提交。

所以我添加了 jquery 来显示确认选项卡但是,当我单击按钮以显示确认选项卡时,表单只是清除并且看不到确认选项卡...请在下面找到代码

HTML

<div class="tab-content">
  <fieldset class="tab-pane active" id="form_tab">
      <form id="poform" method="GET">
         <table>
               <tr>  
                    <th colspan="2"><div class="header_3">Pre-Order Form</div></th>
               </tr>
               <tr>  
                    <td><label>Account Number:</label></td>
                    <td><input type="text" name="accountnumber" id="accountnumber" value="" required/></td>
               </tr>
               <tr>  
                    <td><label>Trade:</label></td>
                    <span class="text_11">
                    <td><input type="radio" id="Buy" name="tradetype" class="tradetype" required value="Buy"/> Buy
                    <input type="radio" id="Sell" name="tradetype" class="tradetype" value="Sell"/> Sell </span></td>
               </tr>
               <tr>  
                    <td><label>Metal:</label></td>
                    <span class="text_11">
                    <td><input type="radio" id="Steel" name="metal" class="metal" required value="Steel"/> Steel
                    <input type="radio" id="Iron" name="metal" class="metal" value="Iron"/> Iron </span></td>
               </tr>
               <tr>  
                    <td class="select"><label>Amount:</label></td>
                    <td><select id="amount" name="amount">
                    <option value="">Select</option>
                    <?php include_once "selectamount.php"?></td>
                    </select>
               </tr>
               <tr>  
                    <td class="select"><label>Date:</label></td>
                    <td><select id="date" name="date" id="date">
                    <option value="">Select</option>
                    <?php include_once "selectdate.php"?></td>
                    </select>
               </tr> 
               <tr> 
                    <td colspan="2" align="center">
                    <button type="button" id="submit_btn">
                       <span class="chngetext">Check</span>
                    </button>
                    </td>
               </tr>
         </table>
      </form>
  </fieldset>

  <fieldset class="tab-pane" id="conf_tab">
    <table>
        <tr style="text-align:center">
            <th colspan="2"><div class="header_3">Pre-Order Ticket Details</div></th>
        </tr>
        <tr style="text-align:left">
            <td><label>Account Number:</label></td>
            <td><mgin><span id="confirm_accountnumber"></span></mgin></td>
        </tr>
        <tr style="text-align:left">
            <td><label>Trade Pre-Order:</label></td>
            <td><mgin><span id="confirm_tradetype"></span></mgin></td>
        </tr>
        <tr>
            <td><label>Amount:</label></td>
            <td><mgin><span id="confirm_amount"></span> 9999 Pooled Allocated <span id="confirm_metal"></span> Loco Singapore</mgin></td>
        </tr>
        <tr>
            <td><label>On date:</label></td>
            <td><mgin><span id="confirm_date"></span></mgin></td>
        </tr>
            <td><label>Pre-Order Discount:</label></td>
            <td><mgin><span id="confirm_data"></span></mgin></td>
        </tr>
        <tr>
            <td><label>Pre-Order Deposit:</label></td>
            <td><mgin>SGD 5000.00</mgin></td>
        </tr>
        <tr>
            <td><label>Additional follow up order:</label></td>
            <td><mgin>New Sell Order to be given 2 days before purchase order date.</mgin></td>
        </tr>
        <tr>
            <td colspan="2" align="center"><button type="submit" class="btn btn-default" id="confirm_btn">Confirm Order</button></td>
        </tr>       
    </table>
  </fieldset>
</div>

jQuery

$(document).ready(function() {
  $('#submit_btn').click(function() {

    // Get the value of the field with 'firstname' id.
    var accountnumber = $('#accountnumber').val();
    var tradetype = $('input.tradetype:checked').val();
    var amount = $('#amount').val();
    var metal = $('input.metal:checked').val();
    var date = $('#date').val();
    var data = "<?php include 'retrievepremordisc.php'; ?>";

    $('#confirm_accountnumber').text(accountnumber);
    $('#confirm_tradetype').text(tradetype);
    $('#confirm_amount').text(amount);
    $('#confirm_metal').text(metal);
    $('#confirm_date').text(date);
    $('#confirm_data').text(data);

    // Hide form tab and show confirmation tab
    $('#form_tab').removeClass('active');
    $('#conf_tab').addClass('active');

  });
});

PHP 文件 (retrievepremordisc.php)

<?php
include_once "connect.php";
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); 

$form=$_GET;
$trade=$form['tradetype'];
$metal=$form['metal'];
$amount=$form['amount'];
$date=$form['date'];

$stmt = $conn->query("SELECT Discount FROM Contracts WHERE Trade='$trade' AND Metal='$metal' AND Amount='$amount' AND ExpiryDate='$date'");
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { 
   echo $row['Discount']; 
} 
?>

谢谢!

【问题讨论】:

  • 当您点击提交按钮时,表单会执行提交操作,因此 jQuery 代码不会执行。将&lt;button type="submit" name="submit" id="check but"&gt;Check Premium&lt;/button&gt; 更改为&lt;button type="button" name="submit" id="checkbut"&gt;Check Premium&lt;/button&gt;
  • 或者可以在点击函数里面添加$('#checkbut').click(function(e /* add e parameter to get the click event*/) {-e.preventDefault();

标签: javascript jquery html forms


【解决方案1】:

当您点击提交按钮时,表单会执行提交操作,因此 jQuery 代码不会执行。

改变

&lt;button type="submit" name="submit" id="checkbut"&gt;Check Premium&lt;/button&gt;

&lt;button type="button" name="submit" id="checkbut"&gt;Check Premium&lt;/button&gt;.

其他方式是使用event.preventDefault();

$(document).ready(function() {
  $('#checkbut').click(function(e) {
    e.preventDefault(); // This prevents the action of sending the form.

    // Get the value of the field with 'firstname' id.
    var accountnumber = $('#accountnumber').val();
    var tradetype = $('#tradetype').val();
    var amount = $('#amount').val();
    var metal = $('#metal').val();
    var date = $('#date').val();

    $('#confirm_accountnumber').text(accountnumber);
    $('#confirm_tradetype').text(tradetype);
    $('#confirm_amount').text(amount);
    $('#confirm_metal').text(metal);
    $('#confirm_date').text(date);

    // Hide form tab and show confirmation tab
    $('#form_tab').removeClass('active');
    $('#conf_tab').addClass('active');

  });
});

但是:

Id 选择器在页面中必须是唯一的。您有两个具有相同 ID 的按钮。您需要使用唯一标识符正确重命名。

根据您的 html 上下文:

<div id="Sellbut" class="toHide" style="display:none"><button type="submit" name="submit" id="checkbut">Check Premium</button></div>
<div id="Buybut" class="toHide" style="display:none"><button type="submit" name="submit" id="checkbut">Check Discount</button></div>

这些按钮似乎执行不同的操作,因此您需要重命名它。

【讨论】:

  • 其实这两个ID相同的按钮是为了同一个目的。我有另一个 Jquery,它确定显示哪一个,因为我希望按钮显示基于单选按钮选择...'$(function() { $('.tradetype').change(function() { if($(this).val() == 'Buy') {$('#Buybut').show(); $('#Sellbut').hide();} if($(this).val () == 'Sell') {$('#Sellbut').show(); $('#Buybut').hide();} }); }); '
  • 我认为正因为如此,上面的代码也不起作用......有什么建议吗?
  • 拜托,你能用你拥有的所有代码更新你的问题吗?我可以帮你。
  • 我已经添加了上面的整个代码。在 html/php 代码的末尾附近有一个跨度“confirm_data”......这是来自我调用 php 文件的 jquery。我还包含了上面的 php 文件,它根据 html/php 第一部分中表单的输入从我的数据库中检索数据......但是,当我单击“检查”按钮时,这个 php 文件不会运行--> 目前我得到 作为输出.. 是否可以在我没有真正提交表单的情况下运行 php?
【解决方案2】:

使用 event.preventDefault();在你点击功能。

【讨论】:

  • 这会起作用,但如果你解释了它为什么会起作用,它将对 OP 有用。
【解决方案3】:

每个 id 在 HTML 文档中必须是唯一的。您的两个按钮都使用id="checkbut",但jQuery 调用$('#checkbut') 只会引用其中一个(可能是第一个),而另一个根本不会获得点击处理程序。

由于没有明确定义当有 2 个元素具有相同 id 时浏览器的行为方式,因此浏览器之间的行为可能会有很大差异。

您可以将 HTML 中的 id= 更改为 class=,将选择器更改为 $(".checkbut") 以同时引用两者。

【讨论】:

  • 其实这两个ID相同的按钮是为了同一个目的。我有另一个 Jquery,它确定显示哪一个,因为我希望按钮显示基于单选按钮选择...'$(function() { $('.tradetype').change(function() { if($(this).val() == 'Buy') {$('#Buybut').show(); $('#Sellbut').hide();} if($(this).val () == 'Sell') {$('#Sellbut').show(); $('#Buybut').hide();} }); });'
  • 我认为正因为如此,上面的代码也不起作用......有什么建议吗?
  • 尝试记录/警告$('#checkbut') 选择了多少元素,如果只选择一个,则只有一个按钮可以工作。给他们一个共同的班级并通过它进行选择应该会更好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多