Я предполагаю, что вы можете использовать Prototype (фреймворк Javascript), так как вы используете Rails. Это может быть излишним, но вы можете добавить наблюдателя в это поле, чтобы наблюдать за событием фокуса. Оттуда вызовите функцию, которая устанавливает значение поля точек на 50, а затем делает поле точек доступным только для чтения (или отключает поле). Примерно так:
// Add the observer on the field when the DOM loads
document.observe("dom:loaded", function() {
// Observe object with ID = "match_email" for focus event
$('match_email').observe('focus',respondToEmailFocus);
});
// Function to call when the user focuses on the email field
function respondToEmailFocus(event){
// Find object with ID = "match_points" and set the value = 50
$('match_points').value = 50;
// Find the object with ID = "match_points" and make it read only
$('match_points').readOnly=true;
// Instead of setting to read only, you could disable the field using:
// $('match_points').disable();
}
Вот дополнительная информация о событиях и прототипе на случай, если вам нужно его изменить.
Хотя вы можете просто поместить этот код прямо в представление, лучше всего отделить ваш Javascript от кода представления (ненавязчивый Javascript). Вы можете поместить этот код в отдельный файл Javascript, а затем включить этот файл, используя javascript_include_tag Rail.
Если вы не хотите использовать Prototype, вы можете просто добавить атрибут onFocus в поле электронной почты и вызвать функцию, аналогичную приведенной выше (responseToEmailFocus). Поскольку вы не используете Prototype, вам придется использовать document.getElementById('match_points')
вместо $('match_points')
, чтобы найти поле точек.