JQuery диалоги и заполнение форм редактирования - PullRequest
0 голосов
/ 16 сентября 2011

Это первая неделя, когда я играл с jQuery, поэтому у меня много вопросов по этому поводу.

Я использую один диалог для создания и редактирования элементов.

Моя функция editCustomField () не заполняет имена полей, как я думал, но должна открывать диалоговое окно.

Должен ли я использовать javascript getElementById ("empId") и т. Д. Вместо jQuery? Могу ли я обернуть свою функцию в какую-то форму тегов jQuery, чтобы она работала? Ссылка построена с использованием jstl и el.

<script type="text/javascript">
  function editCustomField(empId, fieldId, name, value){
    $("empId").val(empId);
    $("fieldId").val(fieldId);
    $("fieldName").val(name);
    $("fieldValue").val(value);
    $("#customFieldDialog").dialog("open");
    return false;
  };

  $(document).ready(function(){
    $("#customFieldDialog").dialog({
      resizable: false,
      modal: true,
      autoOpen: false,
      width:315,
      buttons: {
        "Save" : function() {
          $("#customFieldForm").submit();
        },
        "Cancel" : function() {
          $(this).dialog("close");
          return false;
        }
      }
    });

$(".customfield").click(function(e) {
      $("#customFieldDialog").dialog("open");
    });
  });
</script>

HTML:

<a href="#" onclick="editCustomField('${employee.id}','${viewCustomField.id}','${viewCustomField.name}','${viewCustomField.value}');"><img src="<c:url value="/images/pencil.png"/>" alt="edit" title="edit" /></a>

<div id="customFieldDialog" title="Custom Field">
  <form id="customFieldForm" action="saveCustomField.action" method="POST">
    <input type="hidden" id="empId" name="employeeId" />
    <input type="hidden" id="fieldId" name="customFieldId" />
    <table>
      <tr>
        <td>Field name:</td><td><input id="fieldName" type="text" name="customField.name" /></td>
      </tr>
      <tr>
        <td>Value:</td><td><input id="fieldValue" type="text" name="customField.value" /></td>
      </tr>
    </table>
  </form>
</div>

Ответы [ 2 ]

2 голосов
/ 16 сентября 2011

В JQuery, когда вы ссылаетесь на элемент по идентификатору, вы должны добавить к атрибуту префикс #

. В вашем случае правильный код для заполнения ваших полей будет

  function editCustomField(empId, fieldId, name, value){
    $("#empId").val(empId);
    $("#fieldId").val(fieldId);
    $("#fieldName").val(name);
    $("#fieldValue").val(value);
    $("#customFieldDialog").dialog("open");
    return false;
  };
1 голос
/ 16 сентября 2011

Вам нужен # для селекторов ID.

 function editCustomField(empId, fieldId, name, value){
    $("#empId").val(empId);
    $("#fieldId").val(fieldId);
    $("#fieldName").val(name);
    $("#fieldValue").val(value);
    $("#customFieldDialog").dialog("open");
    return false;
  };
...