Передача переменных в модальное окно Shadowbox? - PullRequest
0 голосов
/ 02 марта 2012

Я пытаюсь добавить почтовый сервис на сайт.У меня появляется окно модального сообщения с Shadowbox (так как я уже использовал Shadowbox на сайте для других целей).

Проблема в том, что я не могу передать переменную в форму сообщения, которая открывается.

Я вызываю окно таким образом

$(document).on("click","#mail",function(e){
    e.preventDefault();
    var thisParentClass = $(this).parent().attr("class");
    alert (thisParentClass);
    var thisIDpos = thisParentClass.indexOf("id-")+3;
    var thisID = thisParentClass.substr(thisIDpos, 3);
    alert(thisID);
     Shadowbox.open({
        content:    '<form method="post" class="mailForm" action="#"><input type="hidden" name="memberID" value=thisID><p>Please be advised that the member may not be actively receiving mail.. or they might just not care at all.  They have lives too you know.</p>Your E-mail:<input type="text" name="fromEmail" size="25"> <br>Your Name: <input type="text" name="fromName" size="25"> <br>Your Message: <br><textarea cols="50" rows="5" name="nMessage">Your Message Here...</textarea> <br><button type="submit" onclick="return false;" id="mailSubmit" value="Submit">Submit</button> ',
        player:     "html",
        height:     350,
        width:      350,
        options: {modal:true}
});

Все моиоповещения возвращают правильные значения, но [thisID] не попадает в мою форму сообщения.Я просто продолжаю получать HTML 'value = "thisID"' (обратите внимание, что кавычки окружают мою переменную независимо от того, добавляю я их или нет).Есть ли какой-нибудь способ получить эту переменную, или я должен переключиться на другое решение?(Я бы хотел, чтобы все мои окна выглядели одинаково, поэтому, если я не смогу использовать Shadowbox здесь, мне придется изменить все мои реализации. B * tch.

I 'я не получаю регистрационное письмо от форума Shadowbox, поэтому я могу спросить это там по какой-то причине, поэтому я подумал, что я бы хотел спросить здесь.

Идеи?

Ответы [ 3 ]

1 голос
/ 02 марта 2012

Замените это:

<input type="hidden" name="memberID" value=thisID>

на это:

<input type="hidden" name="memberID" value='+thisID+'>

Вам необходимо объединить значение thisID в полную строку, используя знак +.

Полный код:

$(document).on("click","#mail",function(e){
    e.preventDefault();
    var thisParentClass = $(this).parent().attr("class");
    alert (thisParentClass);
    var thisIDpos = thisParentClass.indexOf("id-")+3;
    var thisID = thisParentClass.substr(thisIDpos, 3);
    alert(thisID);
     Shadowbox.open({
        content:    '<form method="post" class="mailForm" action="#"><input type="hidden" name="memberID" value='+thisID+'><p>Please be advised that the member may not be actively receiving mail.. or they might just not care at all.  They have lives too you know.</p>Your E-mail:<input type="text" name="fromEmail" size="25"> <br>Your Name: <input type="text" name="fromName" size="25"> <br>Your Message: <br><textarea cols="50" rows="5" name="nMessage">Your Message Here...</textarea> <br><button type="submit" onclick="return false;" id="mailSubmit" value="Submit">Submit</button> ',
        player:     "html",
        height:     350,
        width:      350,
        options: {modal:true}
});
1 голос
/ 02 марта 2012

Вам просто не хватает некоторых кавычек и плюс '

$(document).on("click","#mail",function(e){
    e.preventDefault();
    var thisParentClass = $(this).parent().attr("class");
    alert (thisParentClass);
    var thisIDpos = thisParentClass.indexOf("id-")+3;
    var thisID = thisParentClass.substr(thisIDpos, 3);
    alert(thisID);
     Shadowbox.open({
        content:    '<form method="post" class="mailForm" action="#"><input type="hidden" name="memberID" value="' + thisID + '"><p>Please be advised that the member may not be actively receiving mail.. or they might just not care at all.  They have lives too you know.</p>Your E-mail:<input type="text" name="fromEmail" size="25"> <br>Your Name: <input type="text" name="fromName" size="25"> <br>Your Message: <br><textarea cols="50" rows="5" name="nMessage">Your Message Here...</textarea> <br><button type="submit" onclick="return false;" id="mailSubmit" value="Submit">Submit</button> ',
        player:     "html",
        height:     350,
        width:      350,
        options: {modal:true}
});
0 голосов
/ 02 марта 2012

из кода, который вы разместили, вы не добавляете значение ThisID к коду, а просто записываете его внутри содержимого.

content:    '<form method="post" class="mailForm" action="#"><input type="hidden" name="memberID" value=thisID><p>Please be advised that the member may not be actively receiving mail.. or they might just not care at all.  They have lives too you know.</p>Your E-mail:<input type="text" name="fromEmail" size="25"> <br>Your Name: <input type="text" name="fromName" size="25"> <br>Your Message: <br><textarea cols="50" rows="5" name="nMessage">Your Message Here...</textarea> <br><button type="submit" onclick="return false;" id="mailSubmit" value="Submit">Submit</button> '

ThisID должен быть добавлен через '+ ThisID +' следующим образом:

content:    '<form method="post" class="mailForm" action="#"><input type="hidden" name="memberID" value='+thisID+'><p>Please be advised that the member may not be actively receiving mail.. or they might just not care at all.  They have lives too you know.</p>Your E-mail:<input type="text" name="fromEmail" size="25"> <br>Your Name: <input type="text" name="fromName" size="25"> <br>Your Message: <br><textarea cols="50" rows="5" name="nMessage">Your Message Here...</textarea> <br><button type="submit" onclick="return false;" id="mailSubmit" value="Submit">Submit</button> 
...