每行的不同文本Jquery Modal / Dialog表单

时间:2016-11-30 14:13:06

标签: javascript jquery html jquery-ui jquery-plugins

如何更改每行的jdialog框消息中的文本? 如您所见,在Order Details列中的每一行都有一个Show按钮。 我希望每一行都有不同的文字。 我尝试更改名称值,并且还在每个td元素中放入按钮的代码,但它仍然不起作用。

文字的具体代码:

<div id="dialog-form" title="Order Details">
  <p class="validateTips">Spicy Sandwitch</p>
  <p class="validateTips">More</p>
  <form>
    <fieldset>
      <label for="name">More Comments</label>
      <p class="validateTips">Sandwitch only lettuce</p>
      <!-- Allow form submission with keyboard without duplicating the dialog button -->
      <input type="submit" tabindex="-1" style="position:absolute; top:-1000px">
    </fieldset>
  </form>
</div>
<div id="users-contain" class="ui-widget"

完整代码here

3 个答案:

答案 0 :(得分:1)

为了使对话框的内容从记录更改为另一个

您没有解释如何加载自定义内容?但我将指导您如何自定义每条记录的对话框内容。

首先:创建一个名为openDialog()的JS方法,此方法可以将对话框的上下文作为参数,或者它可能只需要记录ID并通过AJAX或其他东西加载内容

function openDialog(content="", record_id=0)
{
 if(content.length > 0) // if you're passing content as a paramter
    dialog.html(content);
 if(record_id!=0) // if you're passing the record ID as a paramter
 {
    // load content via ajax or something
    dialog.html("loaded content via AJAX for user number "+record_id);
 }
 dialog.dialog("open");
}

然后在每个&#34;显示&#34;中调用此方法你有按钮

<button id="create-user-1" onclick="openDialog('Hello User #1');">New Show</button>
<button id="create-user-2" onclick="openDialog('',2);">New Show</button>

更新实际上您的完整代码有点乱,但正如您所要求的那样,我尝试将我的解决方案应用于您的小提琴代码,这是我的工作示例 https://jsfiddle.net/doaa_magdy_55/qtvw75z6/20/#&togetherjs=jSCLnBoUen

答案 1 :(得分:0)

atm中出现的文字在你的html上是硬编码的

<p class="validateTips">Spicy Sandwitch</p>

除非你用javascript更改它,否则无论你创建一个新文本多少次,“Spicy sandwitch”都将保持不变。我没有真正阅读你的所有代码,因为它太大了,但是你可以做这样的事情来单独地对每一个条目进行地址分配(给它们分配id)

<div id="dialog-form" title="Order Details">
  <p id="something1.0" class="validateTips">Spicy Sandwitch</p>
  <p id="something1.5" class="validateTips">More</p>
  <form>
    <fieldset>
      <label id="something2.0" for="name">More Comments</label>
      <p id="something3.0" class="validateTips">Sandwitch only lettuce</p>
      <input type="submit" tabindex="-1" style="position:absolute; top:-1000px">
    </fieldset>

然后,当您创建行的新入口时,您可以专门查看每个ID并确定显示的内容

$('#something1.0').text('new Spicy sandwitch');
$('#something2.0').text('moreeee'); 

答案 2 :(得分:0)

对您的代码进行以下更改:

  1. 使用引用来定义对话框中的元素以保存动态内容

    <div id="dialog-form" title="Order Details">
         <p class="validateTips field1"></p>
         <p class="validateTips">More</p>
            <form>
                <fieldset>
                    <label for="name">More Comments</label>
                    <p class="validateTips field2"></p>
                    <input type="submit" tabindex="-1" style="position:absolute; top:-1000px">
                </fieldset>
            </form>
    </div>
    
  2. 静态或通过AJAX定义每行所需的内容

     var order1 = {
         field1: 'Spicy Sandwich',
         field2: 'Sandwich Only Lettuce'
     };
    
     var order2 = {
         field1: 'Epic Pizza',
         field2: 'Pizza Without Pinneaple'
     };
    
     var orders = [order1, order2];
    
  3. 编辑代码以填充对话框

    $(".showDialog").button().on("click", function() {
        var row = $(this).closest('tr').index();
        $('#dialog-form .field1').html(orders[row].field1);
        $('#dialog-form .field2').html(orders[row].field2);
        dialog.dialog("open");
    });