I have written html file, where in I have created a table. So for each row I want to define add, edit and delete links.
The code for html file is as below:
<div id="users-contain" class="ui-widget">
<h1>Existing Users:</h1>
<table id="users" class="ui-widget ui-widget-content">
<thead>
<tr class="ui-widget-header ">
<th>Name</th>
<th>Email</th>
<th>Password</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
<tr>
<td class="custom-name">John Doe</td>
<td>[email protected]</td>
<td>johndoe1</td>
<td><a href="">Edit</a></td>
<td><span class="delete"><a href="">Delete</a></span></td>
</tr>
</tbody>
</table>
</div>
<button id="create-user">
Create new user
</button>
The modal for add action is as below:
<div id="dialog-form" title="Create new user">
<p class="validateTips">
All form fields are required.
</p>
<form>
<fieldset>
<label for="first_name">First Name</label>
<select id="first-name">
<option value="1">Arun</option>
<option value="2">Ganesh</option>
<option value="3">Suresh</option>
<option value="4">Sanganabasu</option>
</select>
<label for="last_name">Last Name</label>
<select id="last-name">
<option value="1">Hulagabal</option>
<option value="2">Cheemalamudi</option>
<option value="3">Ganiger</option>
<option value="4">Kattriguppe</option>
</select>
<label for="email">Email</label>
<input type="text" name="email" id="email" value="" class="text ui-widget-content ui-corner-all" />
<label for="password">Password</label>
<input type="password" name="password" id="password" value="" class="text ui-widget-content ui-corner-all" />
</fieldset>
</form>
</div>
And the Javascript code is as below:
$(function() {
var fname = $("#first-name"), lname = $("#last-name"), email = $("#email"), password = $("#password");
$("#dialog-form").dialog({
autoOpen : false,
height : 300,
width : 350,
modal : true,
buttons : {
"Create an account" : function() {
$("#users tbody").append("<tr>" + "<td>" + (fname.find("option:selected").text()+' ').concat(lname.find("option:selected").text())+ "</td>" + "<td>" + email.val() + "</td>" + "<td>" + password.val() + "</td>" + "<td><a href='' class='edit'>Edit</a></td>" + "<td><span class='delete'><a href=''>Delete</a></span></td>" + "</tr>");
$(this).dialog("close");
},
Cancel : function() {
$(this).dialog("close");
}
},
close : function() {
allFields.val("").removeClass("ui-state-error");
}
});
$('span.delete').live('click', function() {
$(this).closest('tr').find('td').fadeOut(1000,
function(){
// alert($(this).text());
$(this).parents('tr:first').remove();
});
return false;
});
$("#create-user").button().click(function() {
$("#dialog-form").dialog("open");
});
});
The add and delete actions are working now and I have created a http://jsfiddle.net/sangu0009/FvAuZ/ but I need to write edit action. Please help me with some solutions to how to do it. The work is more appreciated.
Here is something you can start with,
Change the Edit link to a span with class edit.
$('span.edit').on('click', function() {
$("#dialog-form").dialog({
autoOpen : false,
height : 300,
width : 350,
modal : true,
buttons : {
"Edit an account" : function() {
name = $(this).closest('tr').find('td.custom-name').text().split(' ', 2);
email = $(this).closest('tr').find('td:nth-child(2)').text();
pass = $(this).closest('tr').find('td:nth-child(3)').text();
var fname = name[0], lname = name[1];
$("#first-name option:contains('" + name[0] + "')").attr('selected', 'selected');
$("#last-name option:contains('" + name[1] + "')").attr('selected', 'selected');
$("#email").text(email);
$("#password").text(pass);
},
Cancel : function() {
$(this).dialog("close");
}
},
close : function() {
allFields.val("").removeClass("ui-state-error");
}
});
return false;
});